我有一个 C# API,可以采用 0/1/许多相同类型的参数。有什么更好的方法来定义 API = params
vs IEnumerable<T>
?
问问题
98 次
2 回答
6
我几乎总是会使用params
这样的 API,因为它允许调用者传递参数,而无需手动为它们构造容器。
这:
SomeMethod(param1, param2, param3);
比要求这个更干净:
SomeMethod(new[] { param1, param2, param3 });
但是,如果您专门对单个项目序列进行操作,则IEnumerable<T>
更为明智。同样,如果您期望 > 5 个左右的参数,那么枚举更有意义,因为此时调用方法开始看起来很糟糕。
它实际上归结为 API 的逻辑操作,以及您实际期望的参数数量。
于 2012-07-11T17:44:56.493 回答
3
params
当参数数量很少但未定义时,请使用数组。
IEnumerable
当参数数量很大或者是一组相同的对象时使用 an ,例如在客户或订单中。
于 2012-07-11T17:45:51.320 回答