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 umFunction
.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