Compartilhar via


Métodos parciais (Visual Basic)

Métodos parciais permitem que os desenvolvedores insiram lógica personalizada no código. Normalmente, o código faz parte de uma classe gerada pelo designer. Métodos parciais são definidos em uma classe parcial criada por um gerador de código e geralmente são usados para fornecer notificação de que algo foi alterado. Eles permitem que o desenvolvedor especifique o comportamento personalizado em resposta à alteração.

O designer do gerador de código define apenas a assinatura do método e uma ou mais chamadas para o método. Os desenvolvedores poderão fornecer implementações para o método se desejarem personalizar o comportamento do código gerado. Quando nenhuma implementação é fornecida, as chamadas para o método são removidas pelo compilador, resultando em nenhuma sobrecarga de desempenho adicional.

Declaração

O código gerado marca a definição de um método parcial colocando a palavra-chave Partial no início da linha de assinatura.

Partial Private Sub QuantityChanged()  
End Sub  

A definição deve atender às seguintes condições:

  • O método deve ser um Sub, não um Function.

  • O corpo do método deve ser deixado vazio.

  • O modificador de acesso deve ser Private.

Implementação

A implementação consiste principalmente em preencher o corpo do método parcial. A implementação normalmente está em uma classe parcial separada da definição e é escrita por um desenvolvedor que deseja estender o código gerado.

Private Sub QuantityChanged()  
'    Code for executing the desired action.  
End Sub  

O exemplo anterior duplica exatamente a assinatura na declaração, mas as variações são possíveis. Em particular, outros modificadores podem ser adicionados, como Overloads ou Overrides. Somente um Overrides modificador é permitido. Para obter mais informações sobre modificadores de método, consulte Sub Statement.

Use

Você chama um método parcial como você chamaria qualquer outro Sub procedimento. Se o método tiver sido implementado, os argumentos serão avaliados e o corpo do método será executado. No entanto, lembre-se de que implementar um método parcial é opcional. Se o método não for implementado, uma chamada a ele não terá efeito e as expressões passadas como argumentos para o método não serão avaliadas.

Exemplo

Em um arquivo chamado Product.Designer.vb, defina uma Product classe que tenha uma Quantity propriedade.

Partial Class Product

    Private _Quantity As Integer

    Property Quantity() As Integer
        Get
            Return _Quantity
        End Get
        Set(ByVal value As Integer)
            _Quantity = value
            QuantityChanged()
        End Set
    End Property

    ' Provide a signature for the partial method.
    Partial Private Sub QuantityChanged()
    End Sub
End Class

Em um arquivo chamado Product.vb, forneça uma implementação para QuantityChanged.

Partial Class Product

    Private Sub QuantityChanged()
        MsgBox("Quantity was changed to " & Me.Quantity)
    End Sub

End Class

Por fim, no método Principal de um projeto, declare uma Product instância e forneça um valor inicial para sua Quantity propriedade.

Module Module1

    Sub Main()
        Dim product1 As New Product With {.Quantity = 100}
    End Sub

End Module

Uma caixa de mensagem deve ser exibida que exibe esta mensagem:

Quantity was changed to 100

Confira também