2017-04-22 9 views
2

編集:全く異なる質問this私は自動プロパティが内部的にどのように動作するかを尋ねています自動プロパティを作成すると、バックグラウンドで何が起こるのですか?

私は自動プロパティを作成するときに何が起こりますか?

これは

public int SomeProperty {get; set;} 

この

private int _someField; 
public int SomeProperty 
{ 
    get { return _someField;} 
    set { _someField = value;} 
} 

に等しいが、文字通り何が起こるか、このです(つまり、プライベートフィールドが作成される)、またはそれだけで物事を説明するために提示し、それが違っ

動作します
+0

全く別の質問なぜそれを重複としてマークするのですか-_- –

+1

重複した質問に対する回答は1つの変換を言い表しただけなので、質問を再開しました。つまり、コードはそれに相当しますが、プロパティは単なるメソッドであり、getおよびsetメソッドは裏で生成されます –

答えて

5

はい、まあまあです。

public int SomeProperty {get; set;} 

は、このための糖衣構文です:

private int _someField; 
public int SomeProperty 
{ 
    get { return _someField;} 
    set { _someField = value;} 
} 

そして、それはのためのシンタックスシュガーです:

enter image description here

:あなた自身がildasm.exeを使用して実装を見ることができます

private int _someField; 

public int get_SomeProperty() 
{ 
    return _someField; 
} 

public void set_SomeProperty(int value) 
{ 
    _someField = value; 
} 

プライベートフィールドの値を取得および設定するには、2つのメソッドが生成されます。唯一の違いは、生成されたフィールドの名前です。

関連する問題