什么时候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>.
是否有一个原因?