Поделиться через


Частично (Visual Basic)

Указывает, что объявление типа является частичным определением типа.

Определение типа можно разделить на несколько объявлений с помощью ключевого 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

Два частичных определения в предыдущем примере могут находиться в одном исходном файле или в двух разных исходных файлах.

См. также