Partilhar via


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

Consulte também