バッキングフィールドの必要性
「カプセル化」に基づいてバッキングフィールドを用意して、プロパティからアクセスさせる書き方をされているのをよく見かけるのですが
以下のコードのように
特に値の変更もされずにバッキングフィールドのみがreturn、バッキングフィールドにvalueをセットしているだけ
というプロパティ
c#
private int hoge; // バッキングフィールドpublic int Hoge { get { return this.hoge; } set { this.hoge = value; }}
と
以下のような
コンパイラが自動でフィールドを用意してくれるプロパティのみの実装
と、何か違うのでしょうか?
c#
public int Hoge { get; set ;}
以下のコードのように、プロパティ呼び出し時に値が変更されるような処理であれば、バッキングフィールドが必要なのはわかるのですが、とくに何もしていない値を返すだけのプロパティにバッキングフィールドは必要なのかどうか疑問に思いました。
c#
private int hoge; // バッキングフィールドpublic int Hoge { get { return this.hoge + 2; } set { this.hoge = value * 2; }}

0 コメント