コンストラクタから別のコンストラクタを呼び出すサンプルです。
サンプル
・クラス定義
class Class1
{
// 引数なしコンストラクタ
public Class1():this("ねこ")
{
Console.WriteLine("いぬ");
}
// 引数ありコンストラクタ
public Class1(string str)
{
Console.WriteLine(str);
}
}
例1)上記クラスを引数なしでnewする
// 引数なしでnew
Class1 c = new Class1();
結果
ねこ
いぬ
先にthisで指定したコンストラクタが実行されます。
例2)上記クラスを引数ありでnewする
// 引数ありでnew
Class1 c = new Class1("うさぎ");
結果
うさぎ
備考
- コンストラクタから別のコンストラクタを呼び出したい場合は、上例のようにコロンで区切って呼びたいコンストラクタを指定すればOKです。
- この仕組みのことをコンストラクタ初期化子と呼びます。