このクラスが呼び出されたときにクラスの別のコンストラクタを呼び出し、BarInterval
の配列として値を渡します。この場合、ではないは基本クラスです。それ以外の場合は: base(...)
となります。これは、この非常に同じクラスで定義された別のコンストラクタです。
これは非常に一般的です。さまざまな方法でクラスにアクセスしたいからです。この場合、コード内に配列を設定せずに1つのオブジェクトしか送信できないように見えます。
はしかし、彼らが行っている可能性が一つのことだけで、他のコンストラクタ、このように: this
と呼ばれているものに変更されます。
public BarListTracker(params BarInterval[] interval)
をし、彼らも第二のコンストラクタを必要としなかったであろう。より洗練されたソリューションで、どこでも同じ結果が得られます。
var arrOfBarInterval = new BarInterval[] { val1, val2 };
var tracker = new BarListTracker(arrOfBarInterval);
しかし、あなたはまた、1つだけ渡すことができます::他のコンストラクタは、まだあなたが望んでいた場合は、配列は、あなたもそれに配列を渡すことができます取得
var tracker = new BarListTracker(barInterval);
あなたが行う能力を持っている場合私はそれをお勧めします。
注意する必要があります。: this(...)
コンストラクタが呼び出され、の前にが実行されます。ロジックを構築するときは、そのことを覚えておいてください。
コンストラクタオーバーロードのためのC#構文です。 http://stackoverflow.com/a/5555741/1445661 – mao47