DateTime“null”值
我一直在寻找很多,但找不到解决方案。 你如何处理应该能够包含未初始化值的DateTime(等于null)? 我有一个可能有DateTime属性值的类。 我正在考虑将财产持有人初始化为DateTime.MinValue,然后可以轻松进行检查。 我想这是一个很常见的问题,你怎么做?
对于正常的DateTime,如果你根本不初始化它们,那么它们将匹配DateTime.MinValue
,因为它是一个值类型而不是引用类型。
您也可以使用可空的DateTime,如下所示:
DateTime? MyNullableDate;
或者更长的形式:
Nullable<DateTime> MyNullableDate;
最后,还有一种内置的方式来引用任何类型的默认值。 这将为参考类型返回null
,但对于我们的DateTime示例,它将返回与DateTime.MinValue
相同的DateTime.MinValue
:
default(DateTime)
如果您使用.NET 2.0(或更高版本),则可以使用可空类型:
DateTime? dt = null;
要么
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
约会时间? MyDateTime {获得;设置;}
MyDateTime = (drOrder["Field1"] == DBNull.Value) ? (DateTime?)null : ((DateTime)drOrder["Field1"]);
链接地址: http://www.djcxy.com/p/18513.html