日期:2014-05-16  浏览次数:20861 次

感觉System.Collections名称空间中的几个接口定义有点冗余啊
例如,.net核心类型的接口定义有3个基本的接口:

public interface ICollection : IEnumerable
public interface IList : ICollection, IEnumerable
public interface IDictionary : ICollection, IEnumerable


可是既然ICollection已经是从IEnumerable继承而来的,我感觉IList和IDictionary只要直接继承ICollection就可以了,为什么还要继承自IEnumerable呢? 是不是多余的,还是有什么设计上的考量?



------解决方案--------------------
这不是逻辑需求,只是写法的问题,IList和IDictionary继承的时候不写IEnumerable也是可以的。
但是为了让看代码的人清晰,所以就写上了。
你想啊,如果不写的,你想之后实现了什么接口就要继承树一点点的翻,如果多一点的话翻起来很麻烦。写出来就是一目了然。


------解决方案--------------------
http://bbs.csdn.net/topics/370246598

阿非曾经教育过我,“再深入一点你会得到莫大快乐”,所以我始终难忘。
------解决方案--------------------
引用:
http://bbs.csdn.net/topics/370246598

阿非曾经教育过我,“再深入一点你会得到莫大快乐”,所以我始终难忘。


版主,我看了下那个博客,觉得和这个还有点区别!

这个是接口之间的继承,那个是类继承接口和类继承类的问题;这两个难道是一样的原理?