2010年1月21日木曜日

setキーワードとgetキーワードを使用して、プロパティを個別のアクセスレベルを設定(今の場合はprotected)をしたり、自動プロパティとして定義したりして、そのクラスをインスタンス化して実際にプロパティを使ってみる。

using System;


class SampleClass1
{
    // 既定のprivate
    int num = 1;


    public int Num
    {
        set{this.num = value;}
        get{return this.num;}
    }
}


// 自動プロパティ
class SampleClass2
{
    public int Num { get; set; }
}


// setをprotectedにする
class SampleClass3
{
    int num=3;
    
    public int Num
    {
        protected set{this.num=value;}
        get{return this.num;}
    }
}


class MainClass
{
    static void Main()
    {
        // SampleClass1をインスタンス化
        SampleClass1 sample1 = new SampleClass1();


        // setを呼ぶ
        sample1.Num = 10;


        // getを呼ぶ
        Console.WriteLine(sample1.Num);


        // SampleClass2をインスタンス化
        SampleClass2 sample2 = new SampleClass2();


        sample2.Num = 20;


        // 出力値:20
        Console.WriteLine(sample2.Num);


        // SampleClass3をインスタンス化
        SampleClass3 sample3 = new SampleClass3();
        
        /* setアクセサはprotectedなので
         * アクセスできない
         sample3.Num = 30;
         * 出力値:3 */
        Console.WriteLine(sample3.Num);
    }
}

0 コメント:

コメントを投稿