2011-06-19 11 views
0

私が理解するように、自動化されたプロパティを使用する場合は、setメソッドとgetメソッドの両方を記述する必要があります。 しかし、私がMicrosoftのSystem.Exceptionを見ると、明らかにこの要求に従わないいくつかのプロパティがあります。たとえば、http://msdn.microsoft.com/en-us/library/system.exception.innerexception.aspxです。マイクロソフトはどのように「設定されていない」自動プロパティを実装していますか? (c#)

誰かが私に説明することができますか?

+1

int MyProperty {get; private set;} –

+0

これは実際にいくつかのコンストラクタで渡されるためです。これはそれを不変にします。一度それが渡されると、それを変更することはできません。 – slugster

答えて

1

自動プロパティを使用する場合、setメソッドとgetメソッドは決して書き込まれません。コンパイラは両方を提供します。

プロパティが設定されていない、またはgetが設定されていない場合、それは遠くに定義され、自動プロパティではありません。

バッキングプロパティは、コンパイラで予約された名前ではなく、法的なC#名前であるという事実は、手作業のプロパティを見ている別の手掛かりです。したがって、このプロパティは、自動プロパティが実装されるずっと前から存在していたという事実です。

1

大変申し訳ございません。

「公開セットなし」についてはどうですか?

保護されているかプライベートなので、ドキュメントでフィルタリングすることができます。

+0

'System.Exception.InnerException'には、アクセスが制限されているものとは対照的に、セッターが全くありません。 –

関連する問題