Частичные типы

Во вторую версию языка введена возможность разбивать описание типа на части и хранить их в разных физических файлах, создавая так называемые частичные типы (partial types). Это может потребоваться для классов большого объема или, что более актуально, для отделения части кода, сгенерированной средствами среды, от написанной программистом вручную. Кроме того, такая возможность облег­чает отладку программы, позволяя отделить отлаженные части класса от новых. Для описания отдельной части типа используется модификатор partial. Он мо­жет применяться к классам, структурам и интерфейсам, например:

public partial class A

{

}

public partial class A

{

}

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

Модификатор partial не является ключевым словом и должен стоять непосред­ственно перед одним из ключевых слов class, struct или interface в каждой из частей. Все части определения одного класса должны быть описаны в одном и том же пространстве имен.

ПРИМЕЧАНИЕ

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

Модификаторы доступа для всех частей типа должны быть согласованными. Если хотя бы одна из частей содержит модификатор abstract или sealed, класс считается соответственно абстрактным или бесплодным.

Класс-прототип также может объявляться по частям, в этом случае во всех час­тях должны присутствовать одни и те же параметры типа с одними и теми же ог­раничениями.

Если частичный тип является наследником нескольких интерфейсов, в каждой части не требуется перечислять все интерфейсы: обычно в одной части объяв­ляется один интерфейс и описывается его реализация, в другой части — другой интерфейс и т. д. Набором базовых интерфейсов для типа, объявленного в не­скольких частях, является объединение базовых интерфейсов, определенных в каждой части.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: