Подтвердить что ты не робот

Отсутствует частичный модификатор в объявлении. Другая частичная декларация этого типа существует ". Я новичок и просто следую за книгой

Я начинающий, и я делаю упражнение после книги. Ниже мой код, и я получил это

"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;
       }
    }
}
4b9b3361

Ответ 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, и ошибка исчезла, скомпилирована и запущена, как и должно быть.