これは愚かな質問ですが、私はC#の新機能(Javaのバックグラウンドより)が新しく、プロパティのgetterとsetterに関するさまざまな例を混乱させています。getterとsetterにバッキング変数を使用する
コードは次のようになりますいくつかの状況で:
private string _something;
public string Something
{
get { return _something; }
set { _something = value; }
}
しかし、他の例では、彼らはこのバッキングmemeberを使用していないので、それはより多くのこのようなものです:
public string Something { get; set; }
私はしないでくださいもちろん、変数の設定に関する複雑なロジックを持っていない限り、これらのバッキング変数(_something)を使用する利点があります。
私は後者のアプローチを使って自分のプログラムを書いていますが、何も見逃していないことを確認したかったのです。
誰かがなぜ前者を選んだのか簡単に説明できますか?それはもっと「良い練習」ですか?
ありがとうございます!
私は後者がJavaの 'interface'のようなプロトタイプ定義だと思います。 –
@SuzanCioc Nope。それは同じですが、バッキングフィールドはC#コンパイラによって実装されています。 –
ああ、私は間違っています。これは暗黙のバッキング変数を持つ新しい構文です。 –