バッキングフィールドの必要性
「カプセル化」に基づいてバッキングフィールドを用意して、プロパティからアクセスさせる書き方をされているのをよく見かけるのですが
以下のコードのように
特に値の変更もされずにバッキングフィールドのみがreturn、バッキングフィールドにvalueをセットしているだけ
というプロパティ
c#
1private int hoge; // バッキングフィールド 2public int Hoge 3{ 4 get 5 { 6 return this.hoge; 7 } 8 set 9 { 10 this.hoge = value; 11 } 12}
と
以下のような
コンパイラが自動でフィールドを用意してくれるプロパティのみの実装
と、何か違うのでしょうか?
c#
1public int Hoge { get; set ;}
以下のコードのように、プロパティ呼び出し時に値が変更されるような処理であれば、バッキングフィールドが必要なのはわかるのですが、とくに何もしていない値を返すだけのプロパティにバッキングフィールドは必要なのかどうか疑問に思いました。
c#
1private int hoge; // バッキングフィールド 2public int Hoge 3{ 4 get 5 { 6 return this.hoge + 2; 7 } 8 set 9 { 10 this.hoge = value * 2; 11 } 12}
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/11/20 08:56