Concatenazione dei costruttori di una classe

Riccardo Golia

di , in DotNet,

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
Concatenazione dei costruttori di una classe

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese