我有一个方法,它将float类型的集合作为参数。大多数情况下,ReadOnlyCollection<float>
传递给方法,但有时也传递不同类型的集合,如List。
参数的最佳类型是什么?我应该使用:public void MyMethod(Collection<float>)
吗?这是好的做法吗?
答案 0 :(得分:6)
这取决于你对集合的处理方式。
如果您只想枚举它,请传入IEnumerable<float>
。如果您还需要添加/删除项目,请使用ICollection<float>
。如果您需要按索引访问,请使用IList<float>
。
根据您对不同类型的描述,您无需添加项目,因此IEnumerable<float>
应该没问题。
一般情况下,使用最常用的类型(实现界面,方法少于一个方法)。请参阅Liskov substitution principle(SOLID设计原则中的L)。