インターフェイスからインデクサの動作を追加することはできますか?このようなインターフェイスへのインデクサの動作を定義する方法は?
何か:
interface IIndexable<T>
{
T this[string index];
}
インターフェイスからインデクサの動作を追加することはできますか?このようなインターフェイスへのインデクサの動作を定義する方法は?
何か:
interface IIndexable<T>
{
T this[string index];
}
はい、それは可能です。実際、欠けているのは、インデクサーのゲッター/セッターだけです。次のようにちょうどそれを追加します。
interface IIndexable<T>
{
T this[string index] {get; set;}
}
MSDNから:
public interface ISomeInterface
{
//...
// Indexer declaration:
string this[int index]
{
get;
set;
}
}
インデクサは、インターフェイス(C#リファレンス)で宣言することができます。 インターフェースインデクサのアクセサは 次の方法でクラスインデクサのアクセサ異なります
- インタフェースアクセサは修飾子を使用しないでください。
- インターフェイスアクセサには本体がありません。 (
IDictionary<,>
から取られた)
もう少し一般的なインタフェース、次のようになります。
たIDictionaryがそれを実装することができるように、彼らは、mscorlibでそれを含めなかった理由私だけだろうか。それは意味をなさないでしょう。