相关疑难解决方法(0)

为什么`IList <T>`不继承自`IReadOnlyList <T>`?

什么时候IReadOnlyList<T>在.NET 4.5中引入,有一段时间我认为拼图的缺失部分最终被插入到位:一种传递真正的只读索引接口的方法,以前我必须使用我自己的只读接口并创建包装器围绕一切的课程.

我期待接口被放置在"自然"层次结构中,理想情况是:

IEnumerable<T> 
.GetEnumerator()
      -> IReadOnlyCollection<T> : IEnumerable<T>
      .Count
            -> IReadOnlyList<T> : IReadOnlyCollection<T>
            .Item[...]
                     -> IList<T> : IReadOnlyList<T>
                     .Add(...)
                     .Clear()
                     .Contains(...)
                     (etc)
Run Code Online (Sandbox Code Playgroud)

但是,事实证明,IList<T>不会继承IReadOnlyList<T>.

是否有一个原因?

.net c# generics .net-4.5

28
推荐指数
1
解决办法
1832
查看次数

标签 统计

.net ×1

.net-4.5 ×1

c# ×1

generics ×1