Metodi parziali
Aggiornamento: novembre 2007
I metodi parziali consentono agli sviluppatori di inserire una logica personalizzata nel codice. In genere, il codice è parte di una classe generata nella finestra di progettazione. I metodi parziali vengono definiti in una classe parziale creata da un generatore di codice e si utilizzano comunemente per notificare che si è verificata qualche modifica. Consentono allo sviluppatore di specificare un comportamento personalizzato in funzione della 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 fornire le implementazioni per il metodo se desiderano personalizzare il comportamento del codice generato. Quando non viene fornita alcuna implementazione, le chiamate al metodo vengono rimosse dal compilatore, per evitare un ulteriore sovraccarico nelle prestazioni.
Dichiarazione
Il codice generato contrassegna la definizione di un metodo parziale posizionando la parola chiave Partial all'inizio della riga della firma.
Partial Private Sub QuantityChanged()
End Sub
La definizione deve soddisfare le seguenti condizioni:
Il metodo deve essere un Sub, non una Function.
Il corpo del metodo deve essere lasciato vuoto.
Il modificatore di accesso deve essere Private.
Implementazione
L'implementazione consiste principalmente nell'inserire il corpo del metodo parziale. L'implementazione è in genere in una classe parziale separata dalla definizione e è scritta da un sviluppatore che desidera estendere il codice generato.
Private Sub QuantityChanged()
' Code for executing the desired action.
End Sub
Nell'esempio precedente viene esattamente duplicata la firma nella dichiarazione, ma sono possibili variazioni. In particolare, è possibile aggiungere altri modificatori, ad esempio Overloads o Overrides. È consentito un solo modificatore Overrides. Per ulteriori informazioni sui modificatori di metodo, vedere Istruzione Sub (Visual Basic).
Utilizzare
Si chiama un metodo parziale come si chiamerebbe qualsiasi altra procedura Sub. Se il metodo è stato implementato, gli argomenti vengono valutati e viene eseguito il corpo del metodo. Tuttavia,occorre ricordare che l'implementazione di un metodo parziale è facoltativa. Se il metodo non viene implementato, una chiamata non ha 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 proprietà Quantity.
Module Module1
Sub Main()
Dim product1 As New Product With {.Quantity = 100}
End Sub
End Module
Comparirà una finestra che visualizza questo messaggio:
Quantity was changed to 100
Vedere anche
Concetti
Generazione di codice in LINQ to SQL
Aggiunta della logica di business utilizzando i metodi parziali (LINQ to SQL)