パフォーマンスの観点から、自動実装されたプロパティと手動で実装されたプロパティの間に違いはありますか?
3 に答える
私たちが知っているように、それらは実行時に作成されるからです
自動プロパティは実行時に作成されるのではなく、コンパイル時に生成されます。と非常によく似using
ており、タイピングの量を減らすのに役立つ構文糖衣です。とにかく手動で書いたコードに変換するだけです。
パフォーマンスの違いはありません。バッキングフィールド名を除いて、結果のコードは手動で行った場合と同じです。
@dasblinkenlightが強調表示しているように、バッキング名は「安全な名前」であるため(C#で作成することはできません)、名前を正しく処理できないシリアル化の問題が発生する可能性があります。
違いはありません。自動プロパティは、コンパイル時に通常のプロパティに変換されます。したがって、この:
public int Prop { get; set; }
これと同等のものになります:
private int _PropField;
public int Prop {
get { return _PropField; }
set { _PropField = value; }
}
自動プロパティは構文上の糖衣構文であり、プロパティの記述の省略形です。
MSDNから取得:
C#3.0以降では、自動実装されたプロパティにより、プロパティアクセサーに追加のロジックが必要ない場合に、プロパティ宣言がより簡潔になります。また、クライアントコードでオブジェクトを作成できるようにします。次の例に示すようにプロパティを宣言すると、コンパイラはプライベートの匿名バッキングフィールドを作成し、プロパティのgetおよびsetアクセサーを介してのみアクセスできます。
http://msdn.microsoft.com/en-us/library/bb384054(v=vs.90).aspx