由于 .NET 框架中缺乏泛型差异,如果方法被设计为处理多种类型,那么拥有处理 System.Collection 接口的非泛型版本的方法是否更“正确”?
理想情况下,一旦迁移到 .NET 3.5,代码将被修改以将这些方法更改为扩展方法。
不,更“正确”的做法是使处理多种类型的方法本身具有通用性。
在这种情况下(IEnumerable),实现泛型版本更好,因为它派生自 IEnumerable(非泛型),所以它成为一个有争议的问题,两者都可供您使用。
定义“多种类型”是指例如同时包含 Cars 和 Dogs 的 List 吗?或者一个包含汽车的列表和另一个包含狗的列表?除非您正在做一些“特殊”的事情,否则我会说正确的做法是实现通用版本而不是非通用版本。