值的默认参数必须是编译时间常数吗?

这是我的方法签名。在尝试end作为可选参数传递时,它给了我这个错误。我应该怎么做才能解决这个问题?为什么不是DateTime.MinValue常数?

public static void DatesToPeriodConverter(DateTime start, DateTime end = DateTime.MinValue,

out string date, out string time)

回答:

DateTime.MinValue不是const,因为语言不一样constDateTime。一种选择是改为使用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

回到顶部