4

重複の可能性:
含まれているクラス内で、プロパティまたはフィールドを使用しますか?

次のプロパティを見てください。

private string _name;
public string Name 
{  
    get
    {
        return _name;
    }
    set 
    {
        _name = value 
    }
}

name プロパティにアクセスする必要があり、このプロパティが宣言されているのと同じクラス内のメソッドにいるとしましょう。this.Name または this._name を使用する必要がありますか? Public メンバーを使用する方が良い方法ですか、それとも少なくともクリーンですか?

4

2 に答える 2

4

自動プロパティを使用して、このコードを簡素化できます。

public string Name { get; set; }

Nameこれで、メソッド内からプロパティを使用できるようになりました。

バッキング フィールドは、getter/setter にさらに複雑なロジックがある場合に使用されます。次に、フィールドにアクセスする必要があるか、ゲッター/セッターのロジックを通過する必要があるかによって、フィールドまたはプロパティを使用します。

于 2013-01-27T14:55:03.033 に答える
1

一番いい例がこれだと思います。DataBindings プロパティを使用する場合、多くの場合、次のようになります。

public string Name
{
    get { return _name; }
    set
    {
        _name = value;
        OnPropertyChanged("Name");
    }
}

したがって、このクラスで名前を取得したいだけであれば、this.Nameやのように使用しても問題ありませんthis._name

一方、設定したい場合は、UI を更新するかどうかによって大きく異なります。

私の個人的な慣習は、可能な限りプライベートなバッキング フィールドを使用することです。

あなたの場合、ゲッターとセッターにこれ以上のロジックがない場合は、自動プロパティで十分です。

于 2013-01-27T15:54:00.637 に答える