我有一个C#API,可以采用相同类型的0/1 /多个参数.什么应该是更好的方法来定义API = params与IEnumerable<T>?
我几乎总是使用这样params的API,因为它允许调用者传递参数而无需为它们手动构造容器.
这个:
SomeMethod(param1, param2, param3);
Run Code Online (Sandbox Code Playgroud)
比起要求更清洁:
SomeMethod(new[] { param1, param2, param3 });
Run Code Online (Sandbox Code Playgroud)
但是,如果您专门针对单个项目序列进行操作,则IEnumerable<T>更为明智.同样,如果你期望> 5左右的参数,那么可枚举更有意义,因为在那一点上,调用方法开始看起来很糟糕.
它实际上归结为API的逻辑运算,以及您实际期望的参数数量.