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; }