List <t>派生自IList <t>和IEnumerable <t>,没用?

时间:2017-07-29 11:33:08

标签: c# derived-types

来自mscorlib.dll:

List<T>

为什么ICollection<T>, IEnumerable<T>, IEnumerable,必须明确地从IList<T>派生而来源ICollection<T>, IEnumerable<T>, IEnumerable,而{{1}}来自{{1}}?

2 个答案:

答案 0 :(得分:5)

不要相信反编译代码是原始源代码的准确表示。

The original source code仅包含

public class List<T> : IList<T>, System.Collections.IList, IReadOnlyList<T>

是的,你是对的,List<T>不需要明确地从ICollection<T>和其他人那里得到。事实并非如此。

答案 1 :(得分:3)

对象浏览器或Reflector或其他类似物品没有源代码,它们具有可供使用的元数据。如果一个类型直接实现了一个接口,那么检查该信息并不容易,因此最简单的选择,因为最终目标是文档,即使有些冗余,也只是显示所有接口。

有关详情,请参阅this