Concatenazione dei costruttori di una classe

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.

Nella stessa categoria

Commenti

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.

© 1998-2008 - Ricky.NET - Il blog di Riccardo Golia

TagCloud
BLOG INFO
  • Post: 165
  • Commenti: 104
  • TrackBacks: 63
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom OPML

MVP
CATEGORIE
I PIÙ LETTI DEL MESE
IN EVIDENZA