【问题标题】:Interface that Entails the Implementation of Indexer需要实现索引器的接口
【发布时间】:2010-03-20 11:30:00
【问题描述】:

我正在寻找一个声明索引器的框架定义的接口。也就是说,我在找东西like this

public interface IYourList<T>
{
    T this[int index] { get; set; }
}

我只是想知道.Net框架是否包含这样的接口?如果有,它叫什么?

您可能会问为什么我不能自己创建界面。好吧,我本来可以的。但是,如果 .Net 框架已经有了,我为什么要重新发明轮子?

【问题讨论】:

    标签: c#


    【解决方案1】:

    我想你正在寻找IList<T>

    从 MSDN 网站粘贴的示例:

    T this[
        int index
    ] { get; set; }
    

    编辑更多:

    这是我刚刚反射的整个类,向您展示了框架中接口是如何描述的:

    [TypeDependency("System.SZArrayHelper")]
    public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
    {
        // Methods
        int IndexOf(T item);
        void Insert(int index, T item);
        void RemoveAt(int index);
    
        // Properties
        T this[int index] { get; set; }
    }
    

    【讨论】:

    • 不,IList&lt;T&gt; 没有 T this[int index] { get; set; } 作为其成员
    • @Codeslueth - 公平竞争,多么伟大的回归! :)
    • 我刚刚通过 Reflector 进行了双重检查... Codeslueth 是正确的。
    • 我所有的代表都去哪儿了?现在我低于 1k,我什至看不到我在哪个帖子上被否决了这么多:(
    • 那么,这是否意味着无法编写适用于所有支持索引器的类型的通用代码?
    【解决方案2】:

    我不知道 BCL 中有这样的接口。

    【讨论】:

      【解决方案3】:

      没有只实现索引器(通用或其他)的接口。

      你能得到的最接近的是使用一些集合接口,例如 IList。

      【讨论】:

        猜你喜欢
        • 2019-01-29
        • 1970-01-01
        • 2012-10-26
        • 1970-01-01
        • 2017-04-27
        • 1970-01-01
        • 2019-05-08
        • 2013-04-21
        • 2012-07-04
        相关资源
        最近更新 更多