我一直在寻找,但没有找到解决办法。如何处理应该能够包含未初始化值(相当于null)的DateTime ?我有一个类,它可能有一个DateTime属性值设置或没有。我正在考虑将属性持有人初始化为DateTime。MinValue,然后可以很容易地检查。我想这是一个很常见的问题,你是怎么做到的?


当前回答

可以使用可空类。

DateTime? date = new DateTime?();

其他回答

如果你使用。net 2.0(或更高版本),你可以使用可空类型:

DateTime? dt = null;

or

Nullable<DateTime> dt = null;

之后:

dt = new DateTime();

你可以用:

if (dt.HasValue)
{
  // Do something with dt.Value
}

或者你可以这样用:

DateTime dt2 = dt ?? DateTime.MinValue;

你可以在这里阅读更多: http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx

下面的方法也可以

myClass.PublishDate = toPublish ? DateTime.Now : (DateTime?)null;

请注意属性PublishDate应该是DateTime?

DateTime ?MyDateTime{拿套;}

MyDateTime = (dr["f1"] == DBNull.Value) ? (DateTime?)null : ((DateTime)dr["f1"]);

可以使用可空类。

DateTime? date = new DateTime?();

我会考虑使用可空类型。

DateTime吗?myDate而不是DateTime。