繁体   English   中英

名单 <T> 源自IList <T> 并从IEnumerable <T> ,没用?

[英]List<T> derived from IList<T> and from IEnumerable<T>, useless?

来自mscorlib.dll:

public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
{..}

public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable, IList, ICollection, IReadOnlyList<T>, IReadOnlyCollection<T>
{...}

为什么List<T>必须显式派生自ICollection<T>, IEnumerable<T>, IEnumerable,另外还要派生自IList<T> ,它本身派生自ICollection<T>, IEnumerable<T>, IEnumerable

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

原始源代码仅包含

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

所以是的,你是正确的, List<T>不需要从ICollection<T>和其他人明确派生。 事实并非如此。

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

有关更多信息,请阅读此内容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM