Metodi parziali (Visual Basic)

I metodi parziali consentono agli sviluppatori di inserire logica personalizzata nel codice. In genere, il codice fa parte di una classe generata dalla finestra di progettazione. I metodi parziali vengono definiti in una classe parziale creata da un generatore di codice e vengono comunemente usati per fornire una notifica per comunicare che si è verificata una modifica. Consentono allo sviluppatore di specificare un comportamento personalizzato in risposta alla modifica.

La finestra di progettazione del generatore di codice definisce solo la firma del metodo e una o più chiamate al metodo. Gli sviluppatori possono quindi fornire implementazioni per il metodo se vogliono personalizzare il comportamento del codice generato. Quando non viene fornita alcuna implementazione, le chiamate al metodo vengono rimosse dal compilatore, senza sovraccarico aggiuntivo per le prestazioni.

Dichiarazione

Il codice generato contrassegna la definizione di un metodo parziale inserendo la parola chiave Partial all'inizio della riga della firma.

Partial Private Sub QuantityChanged()  
End Sub  

La definizione deve soddisfare le condizioni seguenti:

  • Il metodo deve essere un oggetto Sub, non Function.

  • Il corpo del metodo deve essere lasciato vuoto.

  • Il modificatore di accesso deve essere Private.

Implementazione

L'implementazione consiste principalmente nella compilazione del corpo del metodo parziale. L'implementazione avviene in genere in una classe parziale separata dalla definizione e viene scritta da uno sviluppatore che vuole estendere il codice generato.

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

L'esempio precedente duplica esattamente la firma nella dichiarazione, ma sono possibili varianti. In particolare, è possibile aggiungere altri modificatori, ad esempio Overloads o Overrides. È consentito un solo modificatore Overrides. Per altre informazioni sui modificatori di metodi, vedere Istruzione Sub.

Utilizzo

Si chiama un metodo parziale come si chiamerebbe qualsiasi altra routine Sub. Se il metodo è stato implementato, gli argomenti vengono valutati e il corpo del metodo viene eseguito. Tenere tuttavia presente che l'implementazione di un metodo parziale è facoltativa. Se il metodo non è implementato, una chiamata a non ha alcun effetto e le espressioni passate come argomenti al metodo non vengono valutate.

Esempio

In un file denominato Product.Designer.vb definire una classe Product con una proprietà Quantity.

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

In un file denominato Product.vb fornire un'implementazione per QuantityChanged.

Partial Class Product

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

End Class

Infine, nel metodo Main di un progetto dichiarare un'istanza di Product e fornire un valore iniziale per la relativa proprietà Quantity.

Module Module1

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

End Module

Verrà visualizzata una finestra che visualizza questo messaggio:

Quantity was changed to 100

Vedi anche