Concatenazione dei costruttori di una classe

di Riccardo Golia

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.

Commenti

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

Nella stessa categoria
I più letti del mese
TagCloud
BLOG INFO
  • 166 post, 106 commenti, 63 trackback
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom
IN EVIDENZA