如何检查DateTime字段是否为空或空?

时间:2014-02-20 11:01:39

标签: c#

我是C#的新人,我有一个疑问。

在我正在工作的应用程序中,我在代码中找到了类似的内容:

if (!String.IsNullOrEmpty(u.nome))

此代码只检查u对象的nome字段是否为空\ null字符串。

好的,这对我来说非常清楚,但如果字段不是字符串但是 DateTime 对象,我该怎么办?

2 个答案:

答案 0 :(得分:71)

如果声明一个DateTime,那么默认值是DateTime.MinValue,因此你必须像这样检查它:

DateTime dat = new DateTime();

 if (dat==DateTime.MinValue)
 {
     //unassigned
 }

如果DateTime可以为空,那么这是一个不同的故事:

 DateTime? dat = null;

 if (!dat.HasValue)
 {
     //unassigned
 }

答案 1 :(得分:9)

DateTime不是标准的可空类型。如果要为DateTime类型的变量赋值null,则必须使用支持空值的DateTime?类型。

如果您只想测试要设置的变量(例如变量保持非默认值),您可以使用关键字“default”,如下面的代码所示:

if (dateTimeVariable == default(DateTime))
{
    //do work for dateTimeVariable == null situation
}