Metodi parziali

Scritto da  Luca Cestola il martedì 3 maggio 2011  •  Linguaggio: C#,VB   • 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: 

 
x