Métodos parciais (Visual Basic)
Os 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 que é criada por um gerador de código, e eles são comumente 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 podem fornecer implementações para o método se quiserem 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 satisfazer as 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 no preenchimento do 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 são possíveis variações. Em particular, outros modificadores podem ser adicionados, como Overloads
ou Overrides
. Só é permitido um Overrides
modificador. Para obter mais informações sobre modificadores de método, consulte Sub Statement.
Utilizar
Você chama um método parcial como 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 a implementação de um método parcial é opcional. Se o método não for implementado, uma chamada para 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
Finalmente, no método Main 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
Deve aparecer uma caixa de mensagem que exibe esta mensagem:
Quantity was changed to 100