这是我的方法签名.当try 将end作为可选参数传递时,它给了我这个错误.我该怎么解决这个问题?为什么DateTime.MinValue不是常数?

public static void DatesToPeriodConverter(DateTime start, DateTime end = DateTime.MinValue,
                                          out string date, out string time)

推荐答案

DateTime.MinValue不是const,因为语言不喜欢DateTime上的const.一种 Select 是使用DateTime?,即.

public static void DatesToPeriodConverter(DateTime start, DateTime? end = null,
     out string date, out string time)
{
    var effectiveEnd = end ?? DateTime.MinValue;
    // ...
}

但是,您仍然会遇到使用非默认参数after个默认参数的问题-您可能需要对它们重新排序以将其用作默认参数.

.net相关问答推荐

如何从 tshark 的 stderr 捕获实时数据包计数?

在 F# 中处理 Option - Some(null) 的好策略是什么

在 Invoke() 中运行时,跨线程操作对表单控件无效 - .NET

Dotnet 反射:使用 F# 中的out参数调用 MethodInfo 上的调用

防止在 .NET 上构建路径中的反斜杠以进行跨平台部署

Dictionary.FirstOrDefault() 如何判断是否找到了结果

AsyncLocal 的语义与逻辑调用上下文有何不同?

我应该创建一个 DateRange 对象吗?

Int32.ToString() 是特定于文化的吗?

如何在 C# 中打开 Excel 文件?

重新启动(回收)应用程序池

C#:内存不足异常

String 是原始类型吗?

C# 属性实际上是方法吗?

关于 Enumerable.Range 与传统 for 循环的 foreach 的思考

为什么有些对象属性是 UnaryExpression 而有些是 MemberExpression?

log4net的正确使用方法(记录器命名)

string.Empty vs null.你用哪一个?

如何在 C# 中处理 XML

从 Visual Studio 2015 发布 - 允许不受信任的证书