C# の プロパティ の説明
プロパティ
プロパティは、オブジェクト内にあるフィールドの値を取得・設定するための専用のメソッドのことをいいます。
class Program { static void Main(string[] args) { Human obj = new Human(); obj.Name = "太郎"; Console.WriteLine(obj.Name); Console.Read(); } } class Human { private string name; public string Name { // getアクセス get { return name; } // setアクセス set { name = value; } } }
上記のコードでは フィールドの「name」の為の Nameプロパティを設定しています。 プロパティには フィールドの値を返す getアクセス と フィールドに値を代入する setアクセス があります。
getアクセスを書かなければ書込み専用。setアクセスを書かなければ読み取り専用のプロパティになります。
プロパティに設定された値は 変数 value に代入されるので、それを利用フィールドに値を代入します。
フィールドの値を取得するための get用のメソッドと、設定するための set用のメソッドをそれぞれ作成するより、1つのメソッドで get と set のロジックを記述できるのが特徴です。
自動実装プロパティ
値に対して特にチェックロジック等を記述することがない場合は、自動実装プロパティという書き方をすることで、privateフィールドの記述を省略できます。
class Program { static void Main(string[] args) { Human obj = new Human(); obj.Name = "太郎"; Console.WriteLine(obj.Name); Console.Read(); } } class Human { // 自動実装プロパティ public string Name { get; set; } }
初期値を設定したいときは 次のように記述します。
class Human { public string Name { get; set; } = "taro"; }
また、set を private に指定することによって、読み取り専用プロパティとすることが可能です。
class Human { public string Name { get; private set; } = "taro"; }