将几个元素传递给方法
本文关键字:方法 元素 几个 | 更新日期: 2023-09-27 18:37:22
我有几个方法可以接受固定大小的集合(例如2,3,5)。而且我无法决定哪种方式更好:
public void Foo(IEnumerable<Object> objects)
{
if(objects.Count() != 3)
{
throw new Exception()
}
// actions
}
public void Foo(Object objectA, Object objectB, Object objectC)
{
// actions
}
每个选项都有最终的+''-吗?
第二个在我看来要好得多:
- 从签名中可以明显看出它期望 3 个值
- 在编译时而不是执行时标记失败
如果需要特定数量的成员,请使用第二个选项。 如果允许集合,但在运行时引发异常,则方法的使用者会感到困惑。 如果不使用适当的测试并且具有误导性,这可能会或可能不会被发现。 始终为将使用您的代码的人设计,永远不要假设您将始终是维护它的人。
我会这样做:
public class Bar
{
public Object object1;
public Object object2;
public Object object3;
// add a constructor if you want
}
...
public void Foo(Bar b)
{
// actions
}