为什么IList<;T>;继承IEnumerable<;T>;和IEnumerable

本文关键字:IEnumerable gt lt 继承 为什么 IList | 更新日期: 2023-09-27 18:00:07

我偶然在MSDN上查看了IList<T>ICollection<T>,发现这两个接口的定义是:

public interface ICollection<T> : IEnumerable<T>, IEnumerable
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable

请注意,ICollection<T>继承自IEnumerable<T>IEnumerable,这没关系。IList<T>继承自ICollection<T>,但为什么IList<T>必须再次继承IEnumerable<T>IEnumerable

有什么原因吗?

为什么IList<;T>;继承IEnumerable<;T>;和IEnumerable

文档是以这种方式生成的,因此您可以查看类型实现了哪些接口,而不必遵循接口继承层次结构中的传递链接。