我知道完全相同的问题出现在这里StackOverflow,但它不完全回答我的查询。集合<T>:它为什么既实现IEnumerable又实现IEnumerable <T>?
如果ICollection<T>
工具IEnumerable<T>
,它扩展IEnumerable
,为什么从微软程序员添加IEnumerable
作为该ICollection<T>
实现的接口?
难道这不就是(语义和执行方面的明智),就像简单地写ICollection<T> : IEnumerable<T>
一样吗?
而像IlDasm和Reflector这样的工具倾向于显示第二更长的形式。不管它是如何写的。 – 2012-02-17 18:55:46
好的,所以它是为了可读性而不是提供任何语义/编程差异,是否正确? – Bober02 2012-02-17 19:18:35
非常。它是可选的* list *附加的接口。无论哪种方式都需要实现。 – 2012-02-17 19:34:38