Uno degli aspetti che trovo più comodi nella definizione dei costruttori di una classe è la loro concatenazione, che consiste nella possibilità di richiamare implicitamente altri costruttori quando viene invocato un costruttore con una determinata firma. La cosa interessante è che questo sistema permette di inserire il codice in un unico posto (senza fare copy&paste, comodo ma assai rischioso) e di definire una sorta di strutturazione gerarchica del codice. Questo facilita enormemente la manutenzione e la leggibilità del codice scritto e limita in maniera significativa la diffusione di bachi (cosa che il già citato copy&paste ovviamente non fa).
public class myClass
{
private int i;
// Costruttore 1
public myClass()
{
this.i = 0;
this.i = this.i + 1;
}
// Costruttore 2
public myClass(string s1) : this()
{
this.i = this.i + 1;
}
// Costruttore 3
public myClass(string s1, string s2) : this("prova")
{
this.i = this.i + 1;
}
}
Se viene chiamato il costruttore 3 della classe myClass, implicitamente vengono chiamati anche i costruttori 1 e 2. Il valore del campo privato i a questo punto vale 3. Tutti i costruttori in questo caso sono pubblici, ma la concatenazione funziona anche con costruttori privati.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.





Stampa
Download 

