【发布时间】:2013-02-20 15:27:01
【问题描述】:
如您所知,C# 通过 params 关键字支持可变参数方法:
int Add(params int[] xs) {
return xs.Sum();
}
然后可以使用任意数量的参数调用它:
Add(1);
Add(1, 2);
Add(1, 2, 3);
但是假设我想使用ints1 的数组调用Add。这是否可能以及如何(最好没有反思)?我尝试了以下方法,但它们给出了语法错误(语法纯属猜测):
var xs = new[] { 1, 2, 3 };
Add(xs...); // doesn't work; syntax error
Add(params xs); // doesn't work; syntax error
1 我的实际用例有所不同,但我认为这个例子不会那么复杂。
【问题讨论】:
-
不起作用是什么意思?
-
@Antonijn 语法错误。
-
stackoverflow.com/questions/36350/… 这个帖子说它应该可以工作。简化是否隐藏了什么?
-
你能定义“不起作用”吗?您是否收到编译时错误、运行时错误或意外输出?
-
你在一个不返回任何东西的方法中返回一些东西 (
void)
标签: c# arrays syntax variadic-functions params-keyword