Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 che è stata modificata. Consentono allo sviluppatore di specificare un comportamento personalizzato in risposta alla modifica.
Il progettista del generatore di codice definisce solamente 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
Sub
oggetto , non un oggettoFunction
.Il corpo del metodo deve essere lasciato vuoto.
Il modificatore di accesso deve essere
Private
.
Implementazione
L'implementazione consiste principalmente nel compilare il corpo del metodo parziale. L'implementazione è 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 le varianti sono possibili. In particolare, è possibile aggiungere altri modificatori, ad esempio Overloads
o Overrides
. È consentito un Overrides
solo modificatore. Per altre informazioni sui modificatori di metodi, vedere Istruzione secondaria.
Utilizzo
Si chiama un metodo parziale come si chiamerebbe qualsiasi altra Sub
procedura. 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 viene 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
che ha 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 Product
e fornire un valore iniziale per la relativa Quantity
proprietà.
Module Module1
Sub Main()
Dim product1 As New Product With {.Quantity = 100}
End Sub
End Module
Verrà visualizzata una finestra di messaggio che visualizza questo messaggio:
Quantity was changed to 100