值的默认参数必须是编译时间常数吗?
这是我的方法签名。在尝试end
作为可选参数传递时,它给了我这个错误。我应该怎么做才能解决这个问题?为什么不是DateTime.MinValue
常数?
public static void DatesToPeriodConverter(DateTime start, DateTime end = DateTime.MinValue, out string date, out string time)
回答:
DateTime.MinValue
不是const
,因为语言不一样const
的DateTime
。一种选择是改为使用DateTime?
,即
public static void DatesToPeriodConverter(DateTime start, DateTime? end = null, out string date, out string time)
{
var effectiveEnd = end ?? DateTime.MinValue;
// ...
}
但是,在默认参数 之后 仍然存在非默认参数的问题-您可能需要重新排序它们才能将其用作默认参数。
以上是 值的默认参数必须是编译时间常数吗? 的全部内容, 来源链接: utcz.com/qa/404168.html