8

どうしてこれなの:

    public string Foo {get;set;}

これよりも優れていると考えられます:

    public string Foo;

私は私の人生のためにそれを解決することはできません。誰かが光を当てることができますか?

ありがとう

4

2 に答える 2

12

(クライアントコードの観点から)透過的にsetter / getter wherasの実装を変更できるため、基になるプロパティを直接公開する場合(バイナリ互換ではないため)、同じことはできません。

ただし、自動プロパティに関連する特定のコードの臭いがあります。これにより、クラスの状態の一部を、考え直すことなく簡単に公開できます。これはJavaにも当てはまり、多くのプロジェクトで、get/setXxx内部状態を公開するペアがいたるところにあり(多くの場合、「万が一の場合」)、プロパティが本質的にパブリックになります。

于 2010-08-02T08:46:15.090 に答える
1

フィールドの目的はオブジェクト状態の保存ですが、プロパティの目的は単にアクセスです。違いは実際よりも概念的かもしれませんが、自動プロパティは両方を宣言するための便利な構文を提供します。

于 2010-08-02T10:09:17.230 に答える