Concatenazione dei costruttori di una classe

di Riccardo Golia, 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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

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