2010年1月21日木曜日

クラスをインスタンス化する時にオブジェクト初期化子を使用して、インスタンス化するクラスのデータメンバーに値を代入してそれを表示してみたり、オブジェクト初期化子を使用せずにパラメータ付きのメソッドを呼び出し値を代入して表示したりしてみる。

using System;


class SampleClass
{
    public int n=1;
    public string s="SampleClass";


    // 既定のコンストラクタ
    public SampleClass()
    {
        Console.WriteLine
            ("{0}:{1}",this.n,this.s);
    }


    public void printOut(int n, string s)
    {
        this.n = n;
        this.s = s;
        Console.WriteLine("{0}:{1}", n, s);
    }
}


class MainClass
{
    static void Main()
    {
        /* 既定のコンストラクタを呼び出しながら
         * オブジェクト初期化子でSampleClassの
         * メンバーn,sを初期化する
         * 出力値:1:SampleClass */
        SampleClass sample
            = new SampleClass { n = 2, s = "MainClass" };
        /* この時点でSampleClassのデータメンバーの値は
         * それぞれn=2,s=MainClass
         * 出力値:2:MainClass */
        Console.WriteLine
            ("{0}:{1}",sample.n,sample.s);


        /* パラメータでオブジェクト初期化しで代入した
         * SampleClassのデータメンバーの値を変更
         * 出力値:3:MainClass2 */
        sample.printOut(3,"MainClass2");
    }
}

0 コメント:

コメントを投稿