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

时间:2012-10-08 14:02:49

标签: c# collections parameters

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

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

1 个答案:

答案 0 :(得分:6)

这取决于你对集合的处理方式。

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

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

一般情况下,使用最常用的类型(实现界面,方法少于一个方法)。请参阅Liskov substitution principleSOLID设计原则中的L)。