如何检查 DateTime 对象是否为空

3

我想验证一个DateTime变量,以确保它在UI上不为空。字符串等效的检查方式是String.IsNullOrEmpty(),但是如何处理我的DateTime变量?


7
日期时间不能为 null 或空值。实际问题是什么? - MikeH
你能详细说明一下你的问题吗?有一个方法可以用,就是DateTime.TryParse() - Juan
1
你是否正在使用像DateTimePicker这样有文档的特定控件? - Mike Zboray
@JuanC。我的任务是从用户界面接收一个出生日期,唯一要求我进行的验证是在单击按钮时,如果GUI上的出生日期字段为空,则抛出参数异常。 - x4iiiis
2个回答

5

DateTime 是一个值类型,因此它不能为 null。要检查 DateTime 变量是否具有默认值(全为 0),您可以将其与 new DateTime()default(DateTime) 进行比较。

另一种选择是对于用户输入使用 DateTime? 替换 DateTime 并检查 HasValue 属性。


2

要在C#中检查 DateTime 是否为null,您必须首先确保DateTime是可空的。

原始答案:最初的回答

// DateTime? means it is nullable
var DateTime? date = null;

// .HasValue only exists if DateTime is nullable
if(date.HasValue)
    Console.WriteLine("date has a value");
else
    Console.WriteLine("date is null");

如果你的DateTime不可为空,请将其设为可为空(除非你确定它绝不会为null)。你不想在DateTime上分配“nullish”值。根据我的经验,这会导致混乱的错误/代码。"最初的回答"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接