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.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- I design pattern di .NET, il 13 luglio 2005 alle 12:02
- Transazioni con Data Access Application Block: non mi convince!, il 10 gennaio 2005 alle 21:10
- SSL e il degrado di prestazioni nei WS, il 23 novembre 2004 alle 22:40
- DataAdapter e connessioni , il 22 ottobre 2004 alle 14:50
- .NET e COM: l'unione fa la forza!, il 27 agosto 2004 alle 15:42