如何为接口定义索引器行为?

时间:2012-03-06 15:27:52

标签: c# interface

是否可以从界面添加索引器行为?

类似的东西:

interface IIndexable<T>
{
   T this[string index];
}

3 个答案:

答案 0 :(得分:34)

是的,有可能。事实上,你所缺少的只是索引器上的getter / setter。只需添加如下:

interface IIndexable<T>
{
     T this[string index] {get; set;}
}

答案 1 :(得分:11)

来自MSDN

public interface ISomeInterface
{
    //...

    // Indexer declaration:
    string this[int index]
    {
        get;
        set;
    }
}
  

可以在接口上声明索引器(C#Reference)。的访问者   接口索引器与类索引器的访问器不同   以下方式:

     
      
  • 接口访问器不使用修饰符。
  •   
  • 界面访问者没有正文。
  •   

答案 2 :(得分:2)

更通用的接口(取自IDictionary<,>)将是:

interface IIndexable<TKey, TValue>
{
    TValue this[TKey key] { get; set; }
}

我只是想知道为什么他们没有将它包含在mscorlib中,所以IDictionary可以实现它。这将是有道理的。