2009-05-30 6 views

答えて

7

もちろんです。インターフェイスのプロパティは、クラスとまったく同じように使用します。

フレームワークの例には、IEnumerator<T>.CurrentICollection<T>.Countが含まれます。

2

このようなシナリオでは、プロパティを使用しても問題ありません。私はGetFoo()メソッドとは対照的に、実際に値を取得しているときにプロパティを使用する方が好きです。

2

この場合、プロパティは間違いなく推奨されます。

0

目的の実装言語がプロパティをサポートする場所では、インターフェイスでも使用するのは間違いありません(もちろん、意図したターゲットが言語の場合はgetter/setterアクセサに固執する必要があります)それはプロパティのサポートに欠けている)。

0

私はあなたが読み込み専用のプロパティを宣言しようとすると(プライベートセッターを使わなくても)、コンパイラは代わりにメソッドを使うよう助言します。

実際の選択については、それはあなたが従っている特定の状況、コーディングスタイル、デザインアプローチの問題です。

1

通常の区別(少なくとも私が使用するもの、私は本当にそれが "通常"であることを願っています))とプロパティの間には依然として適用されます。

という名前の識別子(プロパティまたはメソッド)を介してオブジェクトからデータを取得する行為はいずれかの場合:

  • 高価な操作(すなわち、それはデータベースを照会かもしれません)
  • や操作(つまり、内部フィールドを変更する可能性があります)

...それは方法でなければなりません。

操作が軽量で、副作用がない場合は、プロパティにすることができます。

人の名前を読み取ることはプロパティであるため、その値はおそらくオブジェクトの先頭にあるはずです。

しかし、彼がシステムに持っている注文の数を調べるには、おそらくもっと高価な操作をしなければならないので、おそらく方法であるはずです。

少なくともこれが私が使用する基準です。

これはクラスまたはインターフェイスかどうかはこの点で違いはありません。

具体的なケースでは、私はそのプロパティに行きます。 「タグ付け可能」アイテムはそのタグを知っている必要があります。

関連する問題