seb*_*seb 6 c# parameters option-type
我正在尝试混合可选参数和可变长度参数(使用params关键字):
这是函数声明:
void foo(int req, string opt = "empty", params object[] rest) {}
Run Code Online (Sandbox Code Playgroud)
以下是对该函数的调用:
foo(1);
foo(1, "something");
foo(1, "something", 2, 3);
foo(1, 2, 3);
Run Code Online (Sandbox Code Playgroud)
最后一次调用不会编译,因为参数是在省略的可选参数之后提供的。(至少我认为这就是它不起作用的原因)
如何省略可选参数(opt)并仍然能够使用可变长度参数(rest)?
编辑:事实上,对C# 4.0,可选参数和参数不能一起工作的回答并不令我满意,因为在多个可选参数的情况下可能存在多种重载组合。
尝试这个
foo(1);
foo(1, "something");
foo(1, "something", 2, 3);
foo(1, rest: new object[]{2,3 });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4242 次 |
| 最近记录: |