Добавить частичный файл в существующий файл формы
У меня есть проект приложения Window Form. На данный момент весь мой код находится в Form1.cs
файл, который является файлом по умолчанию. Теперь у меня есть около 1300 строк кода в этом одном файле. Я хочу разбить этот один файловый код на несколько файлов, и я хочу использовать "частичное" ключевое слово (я не хочу делать ничего радикального). Так как мне добавить файлы
Щелкните правой кнопкой мыши имя проекта-> добавить-> новый элемент -> результаты класса в class1.cs
, class2.cs
и так далее
Но этот файл преобразуется в файл формы после компиляции. Как правильно добавить этот файл, чтобы новый файл интегрировался с моим существующим проектом? Form1.cs
а также Form1.cs[Design]
?
2 ответа
Вы должны сохранить пространство имен, имя класса и пометить его 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
}
}
и так далее...
partial
Ключевое слово предназначено в первую очередь для сгенерированных файлов, которые могут быть расширены вашим собственным кодом - бесполезно разбивать один раздутый класс на несколько частей, но если вы действительно хотите это сделать, то вам необходимо:
- Создать новый класс.
- Переименуйте класс в соответствии с вашим собственным классом (Form1.xxx.cs)
- Используйте частичное ключевое слово и настройте имя и пространство имен.
Чтобы уточнить:
Form1.cs
public partial class Form1 { /* ... */ }
Form1.somepart.cs
public partial class Form1 { /* ... */ }