Compartilhar via


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 desejar, em quantos arquivos de origem diferentes desejar. No entanto, todas as declarações devem estar no mesmo assembly e no mesmo namespace.

Observação

O Visual Basic dá suporte a métodos parciais, que normalmente são implementados em classes parciais. Para obter mais informações, consulte Métodos parciais e sub instruçã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

Prazo Definição
attrlist Opcional. Lista de atributos que se aplicam a esse tipo. Você deve colocar a Lista de Atributos entre colchetes angulares (< >).
accessmodifier Opcional. Especifica qual código pode acessar esse tipo. Consulte os níveis de acesso no Visual Basic.
Shadows Opcional. Veja Sombras.
MustInherit Opcional. Consulte MustInherit.
NotInheritable Opcional. Consulte NotInheritable.
name Obrigatório Nome desse tipo. Deve corresponder ao nome definido em todas as outras declarações parciais do mesmo tipo.
Of Opcional. Especifica que esse é um tipo genérico. Consulte tipos genéricos no Visual Basic.
typelist Obrigatório se você usar De. Consulte a Lista de Tipos.
Inherits Opcional. Consulte a instrução Inherits.
classname Obrigatório se você usar Inherits. O nome da classe ou interface da qual essa classe deriva.
Implements Opcional. Consulte a instrução Implements.
interfacenames Obrigatório se você usar Implements. Os nomes das interfaces que esse tipo implementa.
variabledeclarations Opcional. Instruções que declaram variáveis e eventos adicionais para o tipo.
proceduredeclarations Opcional. Instruções que declaram e definem procedimentos adicionais para o tipo.
End Class ou End Structure Termina essa definição ou Structure parcialClass.

Observações

O 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 Designer de Formulários do Windows 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 as de uso e herança do modificador, se aplicam ao criar um tipo parcial.

Práticas recomendadas

  • Em circunstâncias normais, você não deve dividir o desenvolvimento de um único tipo entre duas ou mais declarações. Portanto, na maioria dos casos, você não precisa da Partial palavra-chave.

  • Para legibilidade, cada declaração parcial de um tipo deve incluir a Partial palavra-chave. O compilador permite, no máximo, uma declaração parcial omitir a palavra-chave; se dois ou mais omitirem, o compilador sinalizará um erro.

Comportamento

  • União de Declarações. O compilador trata o tipo como a união de todas as declarações parciais. Cada modificador de cada definição parcial se aplica a todo o tipo e cada membro de cada definição parcial está disponível para todo o tipo.

  • 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á derrotada automaticamente. Nesse caso, um conjunto de definições parciais pode causar resultados inesperados e até erros de compilador. Para obter mais informações, consulte Promoção de Tipos.

    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:

Instrução Class

Instrução Structure

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.

Consulte também