2

Possible Duplicate:
What is the difference between a field and a property in C#?
Difference between Property and Field in C# .NET 3.5+

I have seen that in c# the following pattern is common:

   private string m_name = string.Empty;

public string Name
{
    get
    {
        return m_name;
    }
    set
    {
        m_name = value;
    }
}

why do we use a field and a property to hold a value when we can use a simple variable? why should I use fields and properties instead of a simple variable?

4

3 に答える 3

2

カプセル化の原則のためだけに。具体的な実装を妨げるために、さらに、(この場合) 内に追加のコードを追加する機会がありますget/set

追加のコードが必要ない場合は、単に使用できます

public string Name{get;set;}

または、必要に応じてフィールドを使用します。ただし、プロパティの使用は、Microsoft が提供するガイドラインです。

基本的にすべて、それに従ってください。

于 2012-12-05T18:56:04.863 に答える
0

これには多くの理由がありますが、すぐに思いつくのは次の 2 つです。

まず、プロパティは簡単にすべてのプロパティ (フィールドではなく) を読み取るコントロールまたはその他のリフレクション ベースのコントロール。

次に、getter または setter で実行したいアクション ( NotifyPropertyChangedイベントの発生など) がある場合があります。

于 2012-12-05T18:56:32.397 に答える
0

プロパティは、プロパティを介して読み書きすることにより、クラス内のフィールドを保護する機会を提供します。他の言語では、これは多くの場合、特殊な getter および setter メソッドを実装するプログラムによって実現されます。C# プロパティを使用すると、この種の保護が可能になると同時に、フィールドのようにプロパティにアクセスできます。

フィールドに対するプロパティのもう 1 つの利点は、時間の経過とともに内部実装を変更できることです。パブリック フィールドの場合、コードの呼び出しはフィールドが同じであることに依存するため、基になるデータ型は常に同じである必要があります。ただし、プロパティを使用すると、実装を変更できます。

于 2012-12-05T18:57:17.440 に答える