max*_*axp 7 c# optional-parameters
如果有效,下面的代码会非常酷.但是,我无法编译,所以我假设这不会以任何形式工作?
public void foo(char[] bar = new char[]{'a'})
{
}
Run Code Online (Sandbox Code Playgroud)
下一个最好的选择就是做
public void foo(char[] bar = null)
{
if (bar==null)
bar = new {'a'};
}
Run Code Online (Sandbox Code Playgroud)
不,这是不可能的.默认值需要是编译时常量.默认值将插入调用者,而不是被调用者.如果调用者无法访问用于创建默认值的方法,则代码将成为问题.
但是你可以使用简单的重载:
public void foo(char[] bar)
{
}
public void foo()
{
foo(new char[]{'a'});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3313 次 |
| 最近记录: |