Ответ
Partial class (частичный класс) в C# — это возможность разделить определение одного класса, структуры, интерфейса или метода на несколько исходных файлов. Это особенно полезно при работе с автоматически генерируемым кодом, чтобы отделить пользовательские изменения от машинного кода.
Ключевые правила:
- Все части должны использовать модификатор
partial. - Все части должны находиться в одном пространстве имен (
namespace) и одной сборке (assembly). - Во время компиляции все части объединяются в один тип.
Пример разделения класса:
// File1.cs - Автоматически генерируемый код (например, дизайнером формы)
public partial class UserForm
{
private void InitializeComponent()
{
// Автоматически созданная разметка
}
}
// File2.cs - Ручные правки разработчика
public partial class UserForm
{
public UserForm()
{
InitializeComponent();
this.Load += OnFormLoaded;
}
private void OnFormLoaded(object sender, EventArgs e)
{
// Пользовательская логика загрузки
}
}
Основные сценарии использования:
- Разделение сгенерированного и ручного кода (WinForms, WPF, Entity Framework, веб-сервисы).
- Организация больших классов — логически группировать методы по файлам (например,
CustomerRepository.Queries.cs,CustomerRepository.Commands.cs). - Параллельная работа — несколько разработчиков могут работать над разными частями одного класса, минимизируя конфликты слияния в системе контроля версий.