IEnumerable,ICollection,IList接口问题

Posted 一条大大大大大咸鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IEnumerable,ICollection,IList接口问题相关的知识,希望对你有一定的参考价值。

最近有一个疑问:IList已经继承了ICollection<T>,而ICollection<T>继承了 IEnumerable<T>, IEnumerable,那为什么IList还要继承 IEnumerable<T>, IEnumerable?

技术分享图片

技术分享图片

于是我自己写了接口测试:用dnSpy反编译看到,Test3接口继承了Test1,Test2。这就说明接口其实不支持跟类一样的继承的,但是我们实际用的时候却跟类用法一样,好像支持继承,这其实是编译器帮我们补齐了接口的定义,添加上了Test1。

技术分享图片

技术分享图片

以上是关于IEnumerable,ICollection,IList接口问题的主要内容,如果未能解决你的问题,请参考以下文章

如何选择使用IEnumerable, ICollection, IList

什么时候应该使用列表而不是 ICollection 或 IEnumerable? [关闭]

EF ICollection Vs List Vs IEnumerable Vs IQueryable

IList,ICollection,IEnumerable,IEnumerator,IQueryable

EF下怎么理解IEnumerable/ICollection/IQueryable?

C#中ICollection介绍