我有一个将浮点类型的集合作为参数的方法。大多数时候 aReadOnlyCollection<float>
被传递给方法,但有时也会传递不同类型的集合,如 List 。
参数的最佳类型是什么?我应该使用:public void MyMethod(Collection<float>)
?这是好习惯吗?
我有一个将浮点类型的集合作为参数的方法。大多数时候 aReadOnlyCollection<float>
被传递给方法,但有时也会传递不同类型的集合,如 List 。
参数的最佳类型是什么?我应该使用:public void MyMethod(Collection<float>)
?这是好习惯吗?
这取决于您对集合所做的工作。
如果您只想枚举它,请传入IEnumerable<float>
. 如果您还需要添加/删除项目,请使用ICollection<float>
. 如果需要按索引访问,请使用IList<float>
.
根据您对不同类型的描述,您不需要添加项目,所以IEnumerable<float>
应该没问题。
一般来说,尽可能使用最通用的类型(接口优于实现,方法少的东西比方法多的东西)。请参阅Liskov 替换原则( SOLID设计原则中的 L )。