为什么Ilist正在实施Icollection&不可思议,尽管Icollection:Ienumerable

时间:2014-10-13 11:43:44

标签: c# interface

Icollection是从Ienumberable(ICollection:IEnumerable)实现的, 然后为什么再次收集& IEnumerable都是为IList实现的(接口IList:ICollection,IEnumerable)。

3 个答案:

答案 0 :(得分:2)

您的假设不正确。

The reference source for System.Collections.IList表明它被定义为

public interface IList : ICollection

如果IEnumerable已列在那里,那本来是有效的,并且意味着完全相同的事情,但与你的问题所说的相反,它不是。

答案 1 :(得分:1)

文档显示所有已实现的界面以便澄清,以便您可以轻松查看所有已实现的界面。(我认为这就是您提出这个问题的原因。)

在代码中,这两个版本是等效的:

IList<T> : ICollection<T>

IList<T> : ICollection<T>, IEnumerable<T>

答案 2 :(得分:-2)

ICollection接口扩展了IEnumerable。

IList是一个更专业的界面,可以扩展ICollection。

源: http://msdn.microsoft.com/en-us/library/system.collections.icollection%28v=vs.110%29.aspx (见备注)