0

重複の可能性:
プライベート メンバーをプロパティとしてカプセル化することと、プライベート メンバーなしでプロパティを定義することの違いは何ですか?

C# では、通常、プロパティを定義するときに、get と set に対して 1 行以上を宣言して実装します。例えば

public bool IsThere
{
   get { return _isThere; }
   set { _isThere = value;}
}

これはどういう意味ですか?

public bool IsThere
{
   get;
   set;
}
4

2 に答える 2

5

それらは自動プロパティです。これらは最初の例と同じように機能しますが、不要なソース コードを省略できます。

getter/setter メソッドがなくなった場合に最適です。

また、後で呼び出し元のコードを壊すことなく、getter/setter メソッドにロジックを追加することもできます (ただし、プライベート バッキング プロパティを自分で実装する必要があります)。

于 2012-10-18T20:35:07.477 に答える
2

これは自動実装プロパティ(自動プロパティ)です。

C#コンパイラは、読み取り/書き込み元のget/setメソッドのプライベートフィールドメンバーを自動的に作成します。


自動プロパティには制限があることに注意してください(今のところ)。たとえば、などの修飾子は使用できませんが、まったく同じではないためreadonly、マークを付けることはできます。private set

于 2012-10-18T20:35:44.883 に答える