.NET中在一个继承体系上定义多个相同的接口是基于什么样的理由?

.NET官方文档中非泛型IList接口的定义是:

public interface IList : ICollection, IEnumerable

而ICollection接口的定义本身也会继承自IEnumerable,如下图:

public interface ICollection : IEnumerable

既然IList 继承自ICollection ,而ICollection 又继承自IEnumerable,

那么为何IList的定义中还要显示声明继承自IEnumerable呢?如果IList的定义去掉显示的IEnumerable继承, 像下面这样会有什么潜在的问题?

public interface IList : ICollection

类似这样重复继承相同接口的现象在.NET Framework BCL中有很多,为什么要这样设计呢?是基于什么样的思想呢?

阅读 2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进