Metodi parziali
Scritto da
Luca Cestola il
martedì 3 maggio 2011
•
Linguaggio:
• Livello: 100
Oltre a permette di definire una classe su più file, la keyword
partial permette di separare l'intestazione ed il corpo di un
metodo.
Un semplice esempio:
VB.NET
'
Definizione
Partial Private Sub Log()
End Sub
' Implementazione
Private Sub Log()
MessageBox.Show("Sono in un partial method.")
End Sub
C#
//
Definizione
partial void Log();
// Implementazione
partial void Log()
{
MessageBox.Show("Sono in un partial method.");
}
L'utilità di un metodo Partial è che possiamo fornire o meno la
parte di implementazione. Nel caso in cui l'implementazione non sia
fornita il compilatore provvederà "al volo" ad eliminare le
chiamate a tale metodo. In questo modo possiamo definire dei metodi
che possono essere utili in una certa fase dello sviluppo e che
possiamo eliminare in una fase successiva, semplicemente
commentando l'implementazione, senza dover eliminare da tutto il
codice le chiamate a tale metodo.
I metodi partial hanno le seguenti caratteristiche e
limitazioni:
- Le dichiarazioni di metodi parziali devono iniziare con la
parola chiave contestuale partial e il metodo deve restituire
void.
- I metodi parziali possono contenere il parametro ref ma non il
parametro out.
- I metodi parziali sono implicitamente private e pertanto non
possono essere virtual.
- I metodi parziali non possono essere extern, perché la presenza
del corpo determina se è in corso una definizione o
un'implementazione.
- I metodi parziali possono contenere modificatori static e
unsafe.
- I metodi parziali possono essere generici. I vincoli vengono
inseriti nella dichiarazione di definizione del metodo parziale e
possono essere ripetuti facoltativamente nella dichiarazione di
implementazione. I nomi dei parametri e dei parametri di tipo non
devono essere uguali nella dichiarazione di implementazione e in
quella di definizione.
- È possibile creare un delegato di un metodo parziale che è
stato definito e implementato, ma non di un metodo parziale che è
stato solo definito.
Tags: