Частичные классы, структуры и интерфейсы(partial)
Ключевое слово partial говорит компилятору C#, что исходный код класса, структуры или интерфейса может располагаться в нескольких файлах. Компилятор всегда объединяет эти частичные файлы класса в одно целое. Зачем нужны частичные классы? Вот зачем:
- Управление версиями. Иногда, при написании довольно громоздкого типа может потребоваться участие нескольких разработчиков. У каждого будет своя часть реализации и при компиляции эти части будут объединяться в одно целое и исправно работать.
- Разделение файла или структуры на логические модули внутри файла. Иногда требуется создать один тип для решения разных задач. Для упрощения реализации я иногда объявляю одинаковые типы повторно внутри одного файла. Затем в каждой части такого типа я реализую по одному функциональному аспекту типа со всеми его полями, методами, свойствами, событиями и т. д. Это позволяет мне упростить наблюдение за членами, обеспечивающими единую функциональность и объединенными в группу.
- Разделители кода. При создании в Microsoft Visual Studio нового проекта Windows.Forms или Web.Forms некоторые файлы с исходным кодом создаются автоматически. Они называются шаблонными. При использовании конструкторов форм Visual Studio в процессе создания и редактирования элементов управления формы автоматически генерирует весь необходимый код и помещает его в отдельные файлы.
Ключевое слово partial применяется к типам во всех файлах с определением типа. При компиляции компилятор объединяет эти файлы, и готовый тип помещается в результирующий файл сборки с расширением exe или dll (или в файл модуля с расширением netmodule). Как уже отмечалось, частичные типы реализуются только компилятором C#; поэтому все файлы с исходным кодом таких типов необходимо писать на одном языке и компилировать их вместе как единый блок компиляции.