public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
public interface ICollection<T> : IEnumerable<T>, IEnumerable
public interface IEnumerable<out T> : IEnumerable
public interface IList : ICollection, IEnumerable
public interface ICollection : IEnumerable
源码中为什么是这样呢?
a继承b,b继承c,a不就继承c了么?
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
public interface ICollection<T> : IEnumerable<T>, IEnumerable
public interface IEnumerable<out T> : IEnumerable
public interface IList : ICollection, IEnumerable
public interface ICollection : IEnumerable
源码中为什么是这样呢?
a继承b,b继承c,a不就继承c了么?
解决方案 »
- 怎么在ListView选项中添加一个控件?有相关的完整的源码实例吗?
- 兄弟们,你们开发项目一般会写哪些文档·?~
- winform编程与ASP.NET有连系吗
- 读XML文档出现的问题,根级别的数据无效?
- 让QQ机器人聪明点,再聪明点
- 求教WEB程序打包方法
- 请问高手:求:数据库连接类的代码
- Asp.Net C# Web 编程
- 求助:(Exception from HRESULT: 0x80131417)
- 我的这个问题怎么做?还有我的总信誉分怎么老是减呀,结了一个贴子就少了一个,已经少了6分了
- 如何将string转为定长的char[] 不足的部分自动补'\0'
- 通过js如何实现像Web QQ 那样判断用户是否关闭浏览器退出
这样明显更加让人容易理解嘛...
我的意思是,写一遍就行了吧?List : IList有人没懂? 这样看起来 别个都以为只是继承了 IList这个接口...不可能还跟到IList中去看它又继承了哪些接口吧...多麻烦
全部写出来只是为了好看而已而且,实际上.net的产品源代码里也没这么写,只是MSDN库上是这么写的
因为MSDN库是文档,所以给你写清楚点
你看List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable一眼就知道List<T> 实现了什么接口,不然的话你就需要一个个接口的去翻定义,才知道List<T> 实现了什么接口。
当然,你也可以不显式的写出来,这对逻辑一点影响没有,只是为了看着方便。
你看过.net框架的源码了吗,先反编译看一下再说吧。
既然都知道列出所有接口是一种可选语法,也就是编译后是完全一样的
你觉得反编译工具能够“区分”源代码里究竟显式指明了哪几个接口吗
当然不能,这也是常见的反编译工具会像MSDN一样列出所有基接口的原因之一——它根本就无法确定源代码究竟是怎么写的