<分区>
C# 4.0 的答案不再有效。 <-- (抱歉,这是错误的)
如何将 TimeSpan 用作具有默认值的可选参数?
public static Foo(string myString, TimeSpan maxWait = TimeSpan.FromSeconds(1))
{
// do something
}
使用这段代码我得到了错误:
default parameter must be a compile-time constant
<分区>
C# 4.0 的答案不再有效。 <-- (抱歉,这是错误的)
如何将 TimeSpan 用作具有默认值的可选参数?
public static Foo(string myString, TimeSpan maxWait = TimeSpan.FromSeconds(1))
{
// do something
}
使用这段代码我得到了错误:
default parameter must be a compile-time constant
最佳答案
这在任何 C# 版本中都行不通。默认值必须是常量。您必须创建一个重载来默认值,或者使其可为空并在值为 null
时默认它。
选项 1:
public static Foo(string myString)
{
Foo(myString, TimeSpan.FromSeconds(1));
}
public static Foo(string myString, TimeSpan maxWait)
{
// do something
}
选项 2:
public static Foo(string myString, TimeSpan? maxWait = null)
{
TimeSpan maxWaitNotNull = maxWait ?? TimeSpan.FromSeconds(1);
// do something
}
关于c# - 我可以将 TimeSpan 用作具有默认值的可选参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43386948/