2

我有一个 C# API,可以采用 0/1/许多相同类型的参数。有什么更好的方法来定义 API = paramsvs IEnumerable<T>

4

2 回答 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 回答