2010年2月13日土曜日

オブジェクト初期化子を使用してClassのインスタンス化時にデータメンバーに値を代入し、そのデータメンバーの値がクラスで定義した値とオブジェクト初期化子によって代入した値とでどのような順序で初期化されるかを確認してみる。

using System;

class SampleClass
{
    public string s = "SampleClass";

    // 既定のコンストラクタ
    public SampleClass()
    {
        Console.WriteLine(s);
    }
}

class MainClass
{
    static void Main()
    {
        /* 既定のコンストラクタ
         * クラスで定義した値が表示される
         * 出力値:SampleClass */
        SampleClass sample 
            = new SampleClass { s = "MainClass" };

        /* オブジェクト初期化子で代入した値が
         * 表示される
         * 出力値:MainClass */
        Console.WriteLine(sample.s);
    }
}

0 コメント:

コメントを投稿