kam*_*ame 3 c# parameters timespan default c#-7.0
C#4.0的答案不再适用.< - (对不起,这是错的)
如何将TimeSpan用作具有默认值的可选参数?
public static Foo(string myString, TimeSpan maxWait = TimeSpan.FromSeconds(1))
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
使用此代码我收到错误:
default参数必须是编译时常量
Pat*_*man 11
这在任何C#版本中都没有用过.默认值必须是常量.您必须创建一个重载来默认值,或者使其可为空,如果值为默认则默认值null.
选项1:
public static Foo(string myString)
{
Foo(myString, TimeSpan.FromSeconds(1));
}
public static Foo(string myString, TimeSpan maxWait)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
选项2:
public static Foo(string myString, TimeSpan? maxWait = null)
{
TimeSpan maxWaitNotNull = maxWait ?? TimeSpan.FromSeconds(1);
// do something
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2289 次 |
| 最近记录: |