Joh*_*rtl 8 c# optional-parameters
是否可以使用函数的返回值而不是特定值作为函数中的可选参数?例如,而不是:
public void ExampleMethod(int a, int b, int c=10)
{
}
Run Code Online (Sandbox Code Playgroud)
我想要类似的东西
private int ChangeC(int a, int b)
{
return a+b;
}
public void ExampleMethod(int a, int b, int c=ChangeC(a,b))
{
}
Run Code Online (Sandbox Code Playgroud)
Min*_*ipe 16
不,这是不可能的。对于可选的参数,该值必须是编译时常量。但是,您可以像这样重载该方法:
private int ChangeC(int a, int b)
{
return a + b;
}
public void ExampleMethod(int a, int b, int c) {}
public void ExampleMethod(int a, int b)
{
ExampleMethod(a, b, ChangeC(a, b));
}
Run Code Online (Sandbox Code Playgroud)
这样你就不必处理可为空的值类型
方法之一:
private int ChangeC(int a, int b)
{
return a+b;
}
public void ExampleMethod(int a, int b, int? c=null)
{
c = c ?? ChangeC(a,b);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |