Parcial (Visual Basic)
Indica que uma declaração de tipo é uma definição parcial do tipo.
Você pode dividir a definição de um tipo entre várias declarações usando a Partial
palavra-chave. Você pode usar quantas declarações parciais quiser, em quantos arquivos de origem diferentes desejar. No entanto, todas as declarações devem estar no mesmo assembly e no mesmo namespace.
Nota
Visual Basic suporta métodos parciais, que normalmente são implementados em classes parciais. Para obter mais informações, consulte Métodos parciais e subinstrução.
Sintaxe
[ <attrlist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] _
Partial { Class | Structure | Interface | Module } name [ (Of typelist) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ variabledeclarations ]
[ proceduredeclarations ]
{ End Class | End Structure }
Partes
Termo | Definição |
---|---|
attrlist |
Opcional. Lista de atributos que se aplicam a este tipo. Você deve colocar a Lista de Atributos entre colchetes angulares (< > ). |
accessmodifier |
Opcional. Especifica qual código pode acessar esse tipo. Consulte Níveis de acesso no Visual Basic. |
Shadows |
Opcional. Veja Sombras. |
MustInherit |
Opcional. Consulte MustInherit. |
NotInheritable |
Opcional. Consulte NotInheritable. |
name |
Obrigatório. Nome deste tipo. Deve corresponder ao nome definido em todas as outras declarações parciais do mesmo tipo. |
Of |
Opcional. Especifica que este é um tipo genérico. Consulte Tipos genéricos no Visual Basic. |
typelist |
Obrigatório se você usar Of. Consulte Lista de tipos. |
Inherits |
Opcional. Consulte Declaração de herança. |
classname |
Obrigatório se utilizar Inherits o . O nome da classe ou interface da qual essa classe deriva. |
Implements |
Opcional. Consulte Declaração de implementos. |
interfacenames |
Obrigatório se utilizar Implements o . Os nomes das interfaces que este tipo implementa. |
variabledeclarations |
Opcional. Instruções que declaram variáveis e eventos adicionais para o tipo. |
proceduredeclarations |
Opcional. Declarações que declaram e definem procedimentos adicionais para o tipo. |
End Class ou End Structure |
Termina esta parcial Class ou Structure definição. |
Observações
Visual Basic usa definições de classe parcial para separar o código gerado do código criado pelo usuário em arquivos de origem separados. Por exemplo, o Windows Form Designer define classes parciais para controles como Form. Você não deve modificar o código gerado nesses controles.
Todas as regras para criação de classe, estrutura, interface e módulo, como aquelas para uso e herança de modificadores, aplicam-se ao criar um tipo parcial.
Melhores práticas
Em circunstâncias normais, você não deve dividir o desenvolvimento de um único tipo em duas ou mais declarações. Portanto, na maioria dos casos, você não precisa da
Partial
palavra-chave.Para facilitar a leitura, cada declaração parcial de um tipo deve incluir a palavra-chave
Partial
. O compilador permite que no máximo uma declaração parcial omita a palavra-chave; Se dois ou mais omitirem, o compilador sinaliza um erro.
Comportamento
União de Declarações. O compilador trata o tipo como a união de todas as suas declarações parciais. Cada modificador de cada definição parcial aplica-se ao tipo inteiro, e cada membro de cada definição parcial está disponível para o tipo inteiro.
Promoção de tipo não permitida para tipos parciais em módulos. Se uma definição parcial estiver dentro de um módulo, a promoção de tipo desse tipo será automaticamente derrotada. Nesse caso, um conjunto de definições parciais pode causar resultados inesperados e até mesmo erros do compilador. Para obter mais informações, consulte Tipo de promoção.
O compilador mescla definições parciais somente quando seus caminhos totalmente qualificados são idênticos.
A Partial
palavra-chave pode ser usada nestes contextos:
Exemplo
O exemplo a seguir divide a definição de classe sampleClass
em duas declarações, cada uma das quais define um procedimento diferente Sub
.
Partial Public Class sampleClass
Public Sub sub1()
End Sub
End Class
Partial Public Class sampleClass
Public Sub sub2()
End Sub
End Class
As duas definições parciais no exemplo anterior podem estar no mesmo arquivo de origem ou em dois arquivos de origem diferentes.