接受不同类型的集合作为参数



我有一个方法,该方法将浮点类型的集合作为参数。大多数情况下,ReadOnlyCollection<float>传递给该方法,但有时也会传递不同类型的集合,如 List。

参数的最佳类型是什么?我应该使用:public void MyMethod(Collection<float>)吗?这是好的做法吗?

这取决于您对集合执行的操作。

如果您只想枚举它,请传入IEnumerable<float> 。如果还需要添加/删除项目,请使用 ICollection<float> 。如果需要按索引访问,请使用 IList<float>

从您对不同类型的描述中,您不需要添加项目,因此IEnumerable<float>应该没问题。

通常,使用最通用的类型(接口而不是实现,方法比方法少的东西)。参见 Liskov 替换原则(SOLID 设计原则中的 L)。

最新更新