C# プロパティ リベンジ

まず、型はこちら

アクセスレベル 型名 プロパティ名
{
    set
    {
        // setアクセサー(setter とも言う)
        //  ここに値の変更時の処理を書く。
        //  value という名前の変数に代入された値が格納される。
    }
    get
    {
        // getアクセサー (getter とも言う)
        //  ここに値の取得時の処理を書く。
        //  メソッドの場合と同様に、値はreturnキーワードを用いて返す。
    }
}

寧ろ。

set

get

の順の方がしっくりくるなー。

 

 

 

ufcpp.net

 

C#を攻略しようープロパティー

 

多分ここが一番わかりやすい。

概念的に。

 

namespace ConsoleApplication2
{
    class test
    {
        int a;

        public int b
        {

            get {
                return a;

                System.Console.WriteLine(a);
                }

            set { if (a > -1) a = value;
                    else a = 0;
            System.Console.WriteLine(value);
                }


        }


    }

    class Program
    {
        static void Main(string[] args)
        {
            test test1 = new test();
            test1.b = 10;
            test1.b = -1;

        }
    }
}

 

プロパティは要するに

「変数毎にメソッドの処理みたいな事を書ける。」

という事。

unitygeek.hatenablog.com

だから

int a

{

get{}

set{}

}

 

という記述になる。

 

細かい差異として、

getアクセサ はクラスの外から値を読む。

set アクセサ  は値を設定するときに使用する。

 

プロパティを使うメリットは

 

「メソッドをを増やさずに、メソッドと同等の事ができる」らしい

値が読まれた時のデバッグ

イベントを発行する際の範囲チェック。

 

 

プロパティ

 

 

しかし、

www.wisdomsoft.jp

class MagicalGirl
{
    private string nameField;
    public string Name
    {
        get
        {
            System.Console.WriteLine("Name プロパティを取得");
            return nameField;
        }
        set
        {
            System.Console.WriteLine("Name プロパティを「" + value + "」に設定");
            nameField = value;
        }
    }
}

class Test
{
    public static void Main(string[] args)
    {
        MagicalGirl nanoha = new MagicalGirl();
        nanoha.Name = "高町なのは";
        System.Console.WriteLine("Name=" + nanoha.Name);
    }
}

この
順序だと
set{}
get{}
Main()
の順で表示されてるんだよなー。

まだ何かしっくりこないなーという状態です。

というか、そもそも
System.Enviroment.
の疑問も晴れていないという罠