c# メリット オーバーライド - C#の自動プロパティとは何ですか?その目的は何ですか?




3 Answers

自動プロパティは、プロパティアクセサーで追加のロジックが不要な場合に使用されます。
宣言は次のようになります。

public int SomeProperty { get; set; }

それらは単なる構文的な砂糖なので、次のより長いコードを書く必要はありません:

 private int _someField;
 public int SomeProperty 
 {
    get { return _someField;}
    set { _someField = value;}
 }
フィールド 初期値

誰かがC#での自動プロパティ、その目的、およびいくつかの例を簡単に説明できますか? 素人の言葉で物事を保つようにしてください!




プロパティまたは自動プロパティを使用する理由を尋ねる場合は、これがその背後にあるデザインの考え方です。

重要な設計原則の1つは、フィールドをパブリックとして公開するのではなく、常にプロパティを介してすべてにアクセスすることです。 これは、フィールドにいつアクセスするのか、さらに重要なのは設定されているかを決して知ることができないからです。 さて、多くの場合、値の設定や取得(たとえば、範囲チェック)の際に処理が必要となることはありません。 これが自動プロパティが作成された理由です。 それらは、プロパティを作成するシンプルな、一行の方法です。 そのためのバッキングストアは、コンパイラによって作成されます。

これが私の内部プログラムでもやっているのですが、一般向けに設計されたもの(販売、オープンソースなど)にとってはおそらくもっと重要です。 自動プロパティを使用し、後でset内で何か他のことを行う必要があると判断した場合や、 getする場合は、パブリックインターフェイスを破ることなく簡単にコードを変更できます。




http://msdn.microsoft.com/en-us/library/bb384054.aspx

C#3.0以降では、自動実装されたプロパティは、プロパティアクセサーで追加のロジックが不要な場合に、プロパティ宣言をより簡潔にします。 また、クライアントコードでオブジェクトを作成することもできます。
プロパティを宣言すると、コンパイラはプロパティのgetおよびsetアクセサを使用してのみアクセスできるプライベートの匿名のバッキングフィールドを作成します。

class Person
{
       public string Name { get; set; }
}



Related