C#メモ コンストラクタからコンストラクタを呼んでみる

C#,プログラミング

オーバーロード(多重定義)したコンストラクタがあって、
そいつらをコンストラクタから呼び出したい場合はこんなふうに書く。

class Sample
{
    // ベースのコンストラクタ
    public Sample()
    {
        System.Console.WriteLine( "Sample()" );
    }
    // 引数1コのコンストラクタ
    // →ベースのコンストラクタを呼ぶ
    public Sample( int ivalue ) : this()
    {
        System.Console.WriteLine( "Sample( int ivalue )" );
        System.Console.WriteLine( "ivalue is {0}" , ivalue );
    }
    // 引数2コのコンストラクタ
    // →引数1コのコンストラクタを呼ぶ
    public Sample( int ikey , int ivalue ) : this( ivalue )
    {
        System.Console.WriteLine( "Sample( int ikye , int ivalue )" );
        System.Console.WriteLine( "ikey is {0}" , ikey );
        System.Console.WriteLine( "ivalue is {0}" , ivalue );
    }
}

代表として引数2コのコンストラクタの呼び出し方はこんな感じ。

static void Main(string[] args)
{
    Sample s3 = new Sample(1,2);
}

その結果はこんな感じになる

Sample()
Sample( int ivalue )
ivalue is 2
Sample( int ikye , int ivalue )
ikey is 1
ivalue is 2
続行するには何かキーを押してください . . .

結果をみてみると、最初にベースのコンストラクタ、次に引数1コのコンストラクタ、
最後に引数2コのコンストラクタが呼び出されている。

重複した処理をコンストラクタ毎に書くよりは楽になるかも。

なかなか、調べるのに時間がかかったのでメモメモ。