18

それらを含むクラスでコードを記述するときに、プライベートフィールドまたはプロパティを使用することをお勧めしますか?

たとえば、このフィールドとプロパティのペアがある場合、このクラスの外部のクラスはプロパティを使用する必要があります。クラスのコードはどうですか?プライベートフィールドを使用する必要がありますか、それともプロパティを通過する必要がありますか?

private string _foo;

protected string Foo
{
    get { return this._foo; }
}

private void SomeMethod()
{
  string dummyVariable = "snuh" + this._foo;  // So, this...
  string dummyVariable = "snuh" + this.Foo;  // ... or this?
}

ここでプロパティを使用する利点の1つは、ゲッターにロジックがある場合でも、それが実行されることです。ここで従うべきベストプラクティスポリシーがあるかどうか知りたいです。

4

1 に答える 1

10

自動実装プロパティを使用する場合、選択の余地はありません。生成されたフィールドにアクセスできないため、プロパティを使用する必要があります。

プロパティが単純ではなく、追加の作業(検証、イベントの発生など)を行う場合は、アクセスとロジックを一元化するためにプロパティを呼び出す必要があります。

他のプロパティ(ロジックとバッキングフィールドのない単純なプロパティを意味する)がある場合、なぜそれらが上記のいずれでもないのかと尋ねます...

あなたが与えた例では、それはほとんど違いがありません-あなたがこれらをどのように使用するかと一貫していることがより重要であり、実際には個人的な美学とコーディングスタイルに要約されます。

于 2012-04-28T19:43:20.380 に答える