2

私は長い間プログラミングをしているので、言語の変更についていくのが難しい場合があります...

.net v2 の後でこのようなプロパティを設定しても本当に大丈夫ですか

    public string LocaleName
    {
        get;
        set;
    }

内部フィールドは必要ありませんか? 最近、コンパイラがこれを処理しているようですか?

4

6 に答える 6

10

はい、これは C# 3.0 の新機能です

于 2009-07-22T19:53:15.010 に答える
3

ご存知のように、次のようなこともできます。

public string MyString
{
   get;
   private set;
}

これにより、パブリック アクセサーとプライベート セッターが提供されます。

于 2009-07-22T20:05:51.913 に答える
3

値が正しい方法で設定されているかどうかを確認する必要がない限り、問題ありません。

C# Specificationをご覧ください。

于 2009-07-22T19:53:58.410 に答える
1

はい、これらは「自動実装プロパティ」と呼ばれます。Compiler は、プロパティのバッキング フィールドを作成します。

「自動実装プロパティ」は「C# コンパイラ トリック」であるため、C# 3.0 コンパイラを使用してコードをコンパイルする限り、それらをコードで使用し、.NET Framework 2.0 をターゲットにすることができます。

于 2009-07-22T19:54:13.090 に答える
0

はい、それらは自動プロパティと呼ばれ、バックグラウンドでバッキング フィールドを生成します。

于 2009-07-22T19:54:29.580 に答える
0

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

于 2009-07-22T19:56:05.100 に答える