什么时候使用IEnumerable而不是IEnumerable<>

时间:2008-09-29 20:49:45

标签: generics .net-2.0

由于.NET框架中缺乏通用差异,如果方法设计为处理多种类型,那么处理System.Collection接口的非泛型版本的方法更“正确”吗?

理想情况下,一旦转移到.NET 3.5,代码将被修改以将这些方法更改为扩展方法。

4 个答案:

答案 0 :(得分:1)

不,更“正确”的做法是使处理多种类型的方法本身就是通用的。

答案 1 :(得分:1)

在这种情况下(IEnumerable),实现通用版本更好,因为它来自IEnumerable(非通用),所以它变得没有实际意义,两者都可供你使用。

答案 2 :(得分:0)

定义“多种类型”是指,例如,包含汽车和狗的列表?或者一个包含汽车的列表和另一个包含狗的列表?除非你正在做一些“特殊”的事情,否则我说正确的做法是实现通用版本,而不是非通用版本。

答案 3 :(得分:0)

Here is a decent article explaining it.

我能看到的唯一解决方案是遵循本文的建议,并使该方法也成为通用方法。

但是,我不确定它是否能成为一种扩展方法。