これは、コンストラクターの特別な構文です。次の 2 つの基本的なバリアントを使用できます。
protected MyConstructor() : this(null)
パラメーターを使用して、コンストラクターの別のオーバーロードを呼び出しnull
ます。
protected MyConstructor() : base(null)
パラメーターを使用して基本クラスのコンストラクターを呼び出しnull
ます。
したがって、次のようなクラスを作成できます。
class MyClass
{
object someObject;
public MyClass() : this(null) {}
public MyClass(object someObject) { this.someObject = someObject; }
}
これで、次のようにクラスをインスタンス化できます。
var c = new MyClass(); // c.someObject is null
var c2 = new MyClass(new object()); // c2.someObject is some new object instance
これは、コンストラクター コードを他の方法で再利用できないため必要です。メソッドをオーバーライドまたはオーバーロードするだけの場合、同等のものは次のようになります。
public void DoStuff()
{
DoStuff(null);
}
public void DoStuff(object someObject)
{
// Do some stuff
}