积极答复者
在一个继承体系上定义多个相同的接口是基于什么样的理由?

问题
-
.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中有很多,为什么要这样设计呢?是基于什么样的思想呢?
答案
-
你好,
下面的链接和你的问题很相似,你可以参考一下Jon Skeet的回复。
Best regards,
Zhanglong
MSDN Community Support
Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.- 已标记为答案 Tyler_Li 2018年4月27日 16:16
-
這個問題以前有討論過,後來我們猜測有一個可能是因為文件是用 reflection 的方式產生的,因為 reflection 會把所有介面全部攤出來,所以文件上也就長成這樣了。
可以參考之前的討論
https://social.msdn.microsoft.com/Forums/zh-TW/0e16b5d6-8565-4b9c-8d3d-7af8d79706b8?forum=233
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/
- 已标记为答案 Tyler_Li 2018年4月27日 16:16
全部回复
-
你好,
下面的链接和你的问题很相似,你可以参考一下Jon Skeet的回复。
Best regards,
Zhanglong
MSDN Community Support
Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.- 已标记为答案 Tyler_Li 2018年4月27日 16:16
-
這個問題以前有討論過,後來我們猜測有一個可能是因為文件是用 reflection 的方式產生的,因為 reflection 會把所有介面全部攤出來,所以文件上也就長成這樣了。
可以參考之前的討論
https://social.msdn.microsoft.com/Forums/zh-TW/0e16b5d6-8565-4b9c-8d3d-7af8d79706b8?forum=233
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/
- 已标记为答案 Tyler_Li 2018年4月27日 16:16