0

自動プロパティを実装するとどうなりますか

public string Foobar { get; set; }

次に、対応する変数をコーディングします

private string foobar = string.Empty;

自動プロパティはこの変数を使用しますか、それともコンパイラは追加の変数を生成しますか?

4

3 に答える 3

1

いいえ、自動プロパティは変数を使用しません。foob​​arと呼ばれる他のフィールドとまったく同じです。

名前のsmilarityは、コンパイラにまったく影響を与えません。

コンパイラはバックグラウンドでフィールドを生成しますが、自動プロパティのバッキングフィールドにアクセスすることはできません。

この投稿は、IL(Intermediate Langauge、Assembly of C#)レベルでの動作を示しています。

于 2010-11-12T09:18:48.963 に答える
0

コンパイラはその変数を使用しません、いいえ。変数を使用するには、次のように記述する必要があります

private string foobar = string.Empty;

public string Foobar 
{
    get { return foobar; }
    set { foobar = value; }
}

Resharperを使用している場合は、これを行うためのテンプレートを設定できます。Resharperは、未使用のプライベート変数からゲッターも生成します。

于 2010-11-12T09:50:01.553 に答える
-1

なぜだろう?バッキングフィールドは、このように名前を付ける必要はありません(多くの場合、名前を付けないでください)。

于 2010-11-12T09:28:26.283 に答える