Ciò indica che essi stanno basando, o chiamando , un altro costruttore della classe quando questo viene chiamato e passa il valore come una matrice di BarInterval
. In questo caso è non una classe base perché altrimenti si direbbe : base(...)
, è un altro costruttore definito in questa stessa classe.
Questo è molto comune perché si desidera accedere a una classe in diversi modi e, in questo caso, sembra che siano in grado di inviare solo un singolo oggetto a volte senza impostare un array nel codice.
Tuttavia, una cosa che avrebbero potuto fare è appena cambiato l'altro costruttore, quello di essere chiamato con : this
essere questo:
public BarListTracker(params BarInterval[] interval)
e non sarebbe nemmeno necessario il secondo costruttore. È una soluzione più pulita e produce gli stessi risultati ovunque.L'altro costruttore ottiene ancora un array, si può anche passare un array ad esso se si voleva:
var arrOfBarInterval = new BarInterval[] { val1, val2 };
var tracker = new BarListTracker(arrOfBarInterval);
Ma, si può anche solo trascorrere una:
var tracker = new BarListTracker(barInterval);
Se avete la possibilità di fare che lo raccomanderei.
Un avvertimento da notare, il costruttore : this(...)
viene chiamato ed eseguito prima il costruttore si è in. Tenere a mente quando si costruisce la logica.
fonte
2013-08-02 19:13:55
Questa è la sintassi C# per il sovraccarico del costruttore. http://stackoverflow.com/a/5555741/1445661 – mao47