C# プロパティ

C# プロパティ

クラス内で、変数を定義して、その変数を、クラス内外からアクセスするもの。

クラスの外から見ると、メンバ変数っぽくて、
クラスの内から見ると、メソッドっぽく見える物。

変数をそのまま触らせるより、プロパティ経由で触らせる方が、デバックにもカスタムにも変更にも便利になるものです。
例えば、以下のような変数を利用するときに、追加でプロパティも宣言します。

        // 変数宣言
        string name;
        int age;

プロパティの宣言

        // プロパティ
        public string Name
        {
            set { name = value; }
        }
        public int Age
        {
            set { age = value; }
        }

プロパティと宣言の両方ってめんどくさくない?
ではなくて、プロパティがあっても、直接変数を変更されないように、変数宣言を省略してプロパティのみの記述をすることも出来ます。

        // プロパティ
        public string Name
        {
            get;  set;
        }
        public int Age
        {
            get;  set;
        }

初期化することも可能です

        // プロパティ
        public string Name { get;  set; } = "None";
        public int Age { get;  set; } = 0;

あと、プロパティは、変数がなくても宣言は出来ます。

        // プロパティ
        public string Name
        {
            get { return "None"; }
        }

変数がなくても宣言できる2つ目の例:
固定文字を返す プロパティ 例です。

public string NameAndAge => "Name:" + Name + ", age:" + Age;

プロパティで、変数宣言しないケースで、読み取り専用にするには、private を指定すればいいみたい。

        // プロパティ
        public string Name
        {
            get;  private set;
        }