Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Указывает, что объявление типа является частичным определением типа.
Определение типа можно разделить на несколько объявлений с помощью ключевого Partial
слова. Вы можете использовать столько частичных объявлений, сколько вы хотите, в разных исходных файлах. Однако все объявления должны находиться в одной сборке и одном пространстве имен.
Замечание
Visual Basic поддерживает частичные методы, которые обычно реализуются в частичных классах. Дополнительные сведения см. в разделе "Частичные методы " и "Вложенный оператор".
Синтаксис
[ <attrlist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] _
Partial { Class | Structure | Interface | Module } name [ (Of typelist) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ variabledeclarations ]
[ proceduredeclarations ]
{ End Class | End Structure }
Комплектующие
Срок | Определение |
---|---|
attrlist |
Необязательно. Список атрибутов, применяемых к этому типу. Список атрибутов необходимо заключить в угловые скобки (< > ). |
accessmodifier |
Необязательно. Указывает, какой код может получить доступ к этому типу. См. сведения о уровнях доступа в Visual Basic. |
Shadows |
Необязательно. См. тени. |
MustInherit |
Необязательно. См. раздел MustInherit. |
NotInheritable |
Необязательно. См. раздел NotInheritable. |
name |
Обязательное. Имя этого типа. Должен соответствовать имени, определенному во всех остальных частичных объявлениях того же типа. |
Of |
Необязательно. Указывает, что это универсальный тип. См. универсальные типы в Visual Basic. |
typelist |
Требуется, если вы используете. См. список типов. |
Inherits |
Необязательно. См. инструкцию "Наследование". |
classname |
Требуется, если вы используете Inherits . Имя класса или интерфейса, от которого наследуется этот класс. |
Implements |
Необязательно. См. инструкцию "Реализация". |
interfacenames |
Требуется, если вы используете Implements . Имена интерфейсов этого типа реализуются. |
variabledeclarations |
Необязательно. Операторы, объявляющие дополнительные переменные и события для типа. |
proceduredeclarations |
Необязательно. Операторы, которые объявляют и определяют дополнительные процедуры для типа. |
End Class или End Structure |
Заканчивает это частичное Class или Structure определение. |
Замечания
Visual Basic использует определения частичного класса для разделения созданного кода из кода, созданного пользователем, в отдельных исходных файлах. Например, конструктор Форм Windows определяет частичные классы для таких элементов управления, как Form. В этих элементах управления не следует изменять созданный код.
Все правила для создания класса, структуры, интерфейса и модуля, например для модификатора использования и наследования, применяются при создании частичного типа.
Лучшие практики
В обычных обстоятельствах не следует разделять разработку одного типа по двум или нескольким объявлениям. Поэтому в большинстве случаев ключевое
Partial
слово не требуется.Для удобства чтения каждое частичное объявление типа должно содержать ключевое
Partial
слово. Компилятор позволяет по крайней мере одно частичное объявление опустить ключевое слово; Значение, если два или более опущены компилятором об ошибке.
Поведение
Объединение объявлений. Компилятор обрабатывает тип как объединение всех его частичных объявлений. Каждый модификатор из каждого частичного определения применяется ко всему типу, и каждый член из каждого частичного определения доступен для всего типа.
Недопустимое повышение типа для частичных типов в модулях. Если частичное определение находится внутри модуля, повышение типа этого типа автоматически побеждено. В таком случае набор частичных определений может вызвать непредвиденные результаты и даже ошибки компилятора. Дополнительные сведения см. в разделе "Повышение типов".
Компилятор объединяет частичные определения только в том случае, если их полные пути идентичны.
Ключевое Partial
слово можно использовать в следующих контекстах:
Пример
В следующем примере определение класса sampleClass
разбивается на два объявления, каждая из которых определяет другую Sub
процедуру.
Partial Public Class sampleClass
Public Sub sub1()
End Sub
End Class
Partial Public Class sampleClass
Public Sub sub2()
End Sub
End Class
Два частичных определения в предыдущем примере могут находиться в одном исходном файле или в двух разных исходных файлах.