2013-02-19 4 views
14

У меня есть проект приложения Window Form. На данный момент весь мой код находится в файле Form1.cs, который является файлом по умолчанию. Теперь у меня около 1300 строк кода в этом одиночном файле. Я хочу разбить этот код файла на несколько файлов, и я хочу использовать «частичное» ключевое слово (я не хочу делать ничего решительного). Так как я должен добавить файлыдобавить частичный файл в существующий файл формы

правой кнопкой мыши проект name-> адд> новый пункт -> Результаты класса в class1.cs, class2.cs и так далее

Но этот файл преобразуется в форму файла формы после компиляции. Каков правильный способ добавления, чтобы новый файл интегрировался с моим существующим проектом Form1.cs и Form1.cs[Design]?

+4

'partial' имеет свои преимущества, но я хотел бы предложить то, что может быть подходящим, - это разбить код на логические единицы, создавая отдельные классы, которые будут использоваться w в форме, вместо того, чтобы охватывать форму по многим файлам. –

+0

Вы можете указать файлы, которые хотите, просто убедитесь, что пространство имен и имя класса идентичны и оба отмечены как «partial». –

+0

Вы добавляете файл «Form» или «C# class»? – Default

ответ

5

Вы должны сохранить пространство имен, имя класса и пометить его partial. Имя файла не очень важно для его работы, но это хорошая практика, так что разработчики могут быстро определить содержимое файла.

Form1.cs

namespace TheSameNamespace 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
    } 

    // other definitions 
} 

Form1.Designer.cs

namespace TheSameNamespace 
{ 
    partial class Form1 
    { 
     /// <summary> 
     /// Required designer variable. 
     /// </summary> 
     private System.ComponentModel.IContainer components = null; 

     // the rest of the designer class 
    } 
} 

Form1.Calculations.cs

namespace TheSameNamespace 
{ 
    partial class Form1 
    { 
     // calculation methods definitions 
    } 
} 

Form1.EventHandlers.cs

namespace TheSameNamespace 
{ 
    partial class Form1 
    { 
     // event handlers definitions 
    } 
} 

и так далее ...

+1

... однако, как правило, рекомендуется указывать полезное имя файла (например, 'Form1.Calculations.cs' и' Form1.EventHandlers.cs' и т. Д.) В соответствии с его содержимым. – Nuffin

+0

Я обновлю ответ, спасибо за предложение. –

+1

... однако, это почти всегда не нужно и можно избежать. Частичность отлична для разделения генерируемого кода пользователя, но злоупотребление им просто для того, чтобы разделить вашу логику, нужно пересмотреть. Черт, я бы предпочел более чем # региональный код, чем это. –

0

partial Ключевое слово для сгенерированных прежде всего органов файлов, которые могут быть расширены с помощью вашего собственного кода - нет никакого смысла в расщеплении одного раздутый класс в несколько партикулов, но если вы действительно этого хотите, то вам необходимо:

  1. Создайте новый класс.
  2. Переименуйте класс в соответствии со своим классом (Form1.xxx.cs)
  3. Используйте частичное ключевое слово и отредактируйте имя и пространство имен.

Для clearify:

Form1.cs

public partial class Form1 { /* ... */ } 

Form1.somepart.cs

public partial class Form1 { /* ... */ } 
Смежные вопросы