1

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

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

4

4 回答 4

1

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

于 2008-09-30T13:29:31.013 回答
1

在这种情况下(IEnumerable),实现泛型版本更好,因为它派生自 IEnumerable(非泛型),所以它成为一个有争议的问题,两者都可供您使用。

于 2009-01-03T15:14:47.227 回答
0

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

于 2008-09-29T20:56:35.193 回答
0

这是一篇不错的文章来解释它。

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

但是,我不确定它是否能经得起扩展方法的考验。

于 2008-09-29T21:13:06.917 回答