Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ключевое слово partial, которое позволяет различным частям того же класса ссылки создаваться независимо друг от друга и в разных файлах.
Все среды выполнения
(Эта возможность языка поддерживается только в среде выполнения Windows.)
Среда выполнения Windows
Для класса ссылок с двумя частичными определениями частичное ключевое слово применяется к первому вхождений определения, и это обычно выполняется автоматически созданным кодом, чтобы кодировщик человека не использовал ключевое слово очень часто. Для всех последующих частичных определений класса модификатор partial опускается из ключевого слова class-key и идентификатора класса. Когда компилятор обнаруживает ранее определенный класс ссылки и идентификатор класса, но не ключевое слово partial, он объединяет все части определения класса ссылки в одно.
Синтаксис
partial class-key identifier {
/* The first part of the partial class definition.
This is typically auto-generated */
}
// ...
class-key identifier {
/* The subsequent part(s) of the class definition. The same
identifier is specified, but the "partial" keyword is omitted. */
}
Параметры
class-key
Ключевое слово, которое объявляет класс или структуру, поддерживаемую средой выполнения Windows. Это ref class, value class, ref struct или value struct.
идентификатор
Имя определенного типа.
Замечания
Разделяемый класс предназначен для сценариев, где вы изменяете часть определения класса в одном файле, а программное обеспечение для автоматического построения кода (например, конструктор XAML) изменяет код в этом же классе в другом файле. Использование разделяемого класса позволяет предотвратить изменение вашего кода автоматическим генератором кода. В проекте Visual Studio к сгенерированному файлу автоматически применяется модификатор partial.
Содержимое. При двух исключениях определение частичного класса может содержать все, что может содержать определение полного класса, если частичное ключевое слово было опущено. Однако доступность класса (например, public partial class X { ... };
) и declspec задать нельзя.
Описатели доступа, используемые в определении разделяемого класса для identifier, не влияют на доступность по умолчанию в последующем разделяемом или полном определении класса identifier. Встроенные определения статических элементов данных также допускаются.
Объявление: частичное определение идентификатора класса представляет только идентификатор имени, но идентификатор нельзя использовать таким образом, чтобы требуется определение класса. Имя identifier не позволяет узнать размер identifier и использовать базу или элемент identifier до обнаружения компилятором полного определения identifier.
Число и упорядочение: для идентификатора может быть не более нулевых или более частичных определений классов. Каждому определению разделяемого класса identifier должно лексически предшествовать одно полное определение identifier (если оно существует; в противном случае использование класса невозможно, за исключением наличия опережающего объявления), но не обязательно предшествовать опережающим объявлениям identifier. Все ключевые слова объявления класса должны совпадать.
Полное определение: в точке полного определения идентификатора класса поведение совпадает с тем, что определение идентификатора объявило все базовые классы, члены и т. д. в том порядке, в котором они были обнаружены и определены в частичных классах.
Шаблоны: частичный класс не может быть шаблоном.
Универсальные шаблоны: частичный класс может быть универсальным, если полное определение может быть универсальным. Но каждый разделяемый и полный класс должен иметь точно такие же универсальные параметры, включая имена формальных параметров.
Дополнительные сведения об использовании ключевого слова partial см. в статье Partial Classes (C++/CX) (Разделяемые классы (C++/CX)).
Требования
Параметр компилятора: /ZW
Среда CLR
(Эта возможность языка не поддерживается в среде CLR.)
См. также
Partial Classes (C++/CX) (Разделяемые классы (C++/CX))