Отсутствует частичный модификатор в объявлении. Другая частичная декларация этого типа существует ". Я новичок и просто следую за книгой
Я начинающий, и я делаю упражнение после книги. Ниже мой код, и я получил это
"Missing partial modifier on declaration of type 'Windowsform.Form1'; another partial declaration of this type exists"
.
Что мне делать? Мой код выглядит следующим образом:
using System;
using System.Windows.Forms;
namespace Windowsform
{
public class Form1 : Form
{
private TextBox txtEnter;
private Label lblDisplay;
private Button btnOk;
public Form1()
{
this.txtEnter = new TextBox();
this.lblDisplay = new Label();
this.btnOk = new Button();
this.Text = "My Hellowin app!";
//txtEnter
this.txtEnter.Location = new System.Drawing.Point(16, 32);
this.txtEnter.Size = new System.Drawing.Size(264, 20);
//lblDisplay
this.lblDisplay.Location = new System.Drawing.Point(16, 72);
this.lblDisplay.Size = new System.Drawing.Size(264, 128);
//btnOK
this.btnOk.Location = new System.Drawing.Point(88, 224);
this.btnOk.Text = "OK";
this.btnOk.Click +=
new System.EventHandler(this.btnOK_Click);
//MyForm
this.Controls.AddRange(new Control[] {
this.txtEnter, this.lblDisplay, this.btnOk});
}
static void Main()
{
Application.Run(new Form1());
}
private void btnOK_Click(object sender, System.EventArgs e)
{
lblDisplay.Text = txtEnter.Text + "\n" + lblDisplay.Text;
}
}
}
Ответы
Ответ 1
В другом месте вы объявили класс с тем же именем (Form1
) и там он был объявлен с помощью модификатора partial
.
Если вы разбиваете свой класс на два разных файла (например, этот файл для макета пользовательского интерфейса и другой файл для логики), просто добавьте модификатор partial
в объявление:
public partial class Form1
{
}
Ответ 2
Когда вы создаете новую форму, она фактически создается в двух разных местах. одно место, объявленное классом, - это место, где реализуется вся сантехника, и файл, который вы вставили здесь, чтобы написать всю функциональность. для того, чтобы сделать это возможным, С# имеет функцию частичного класса, если в некотором месте сборки класс определен с помощью частичного модификатора, тогда можно определить несколько объявлений класса, если у него есть этот модификатор.
больше об этом в msdn
Ответ 3
На всякий случай кто-то натыкается на меня, как на меня... Я переключался между Visual Studio 2013 для Web и Visual Studio 2015 RC, чтобы играть с моими решениями MVC.
Если вы попытаетесь открыть MVC4-решение в 2015 году RC, он сделает некоторые автоматы, которые могут вызвать эту ошибку при следующем открытии того же решения в 2013 году для Web.
В итоге я вернулся к предыдущей версии SVN и использовал только 2013 для Интернета, а мой код был построен точно так же, как и в течение многих лет. Я знаю, что это не правильное исправление, но это и заставило это "выскочить" из ниоткуда в моем случае.
Ответ 4
Возможно, я ошибаюсь, но я получал эту ошибку (и больше) с MVC3 и EF4. После того, как я ударил головой по столу в течение дня или около того, я, наконец, решил перейти на MVC4 и просто страдать из-за этой кривой обучения, если MVC3 не собирается сотрудничать. Самое смешное, что все мои ошибки ушли.
Перед обновлением я должен был выполнить 100 поисков, пытаясь найти мои повторяющиеся объявления.
Кажется, что MVC4 и EF4 играют более приятные вместе.
Ответ 5
TL; DR: вызвано пережитками классов, которые были переименованы VS2013, но VS2013 не переименовывался повсеместно, оставляя экземпляры старого имени, висящего в нераскрытых местах.
ДЕТАЛИ: У меня была такая же ошибка в VS2013, в моем случае изначально я добавил новый класс "Сотрудник", но потом понял, что должен был быть AddEmployee, поэтому я щелкнул правой кнопкой мыши и изменил имя, и он появился ", чтобы изменить это во всех правильных местах.
Некоторое время спустя я попытался добавить класс Employee, а затем получил ошибку. После посещения здесь и не найдя исправления, я искал "полное решение" для других экземпляров Employee, и это оказалось несколько неудачных, когда я ранее переименовал Employee в AddEmployee:
AddEmployee.aspx.cs: public partial class Employee : System.Web.UI.Page
AddEmployee.aspx.designer.cs: public partial class Employee {
Обновил эти два до AddEmployee, и ошибка исчезла, скомпилирована и запущена, как и должно быть.