我是C#的新人,我有一个疑问。
在我正在工作的应用程序中,我在代码中找到了类似的内容:
if (!String.IsNullOrEmpty(u.nome))
此代码只检查u对象的nome字段是否为空\ null字符串。
好的,这对我来说非常清楚,但如果字段不是字符串但是 DateTime 对象,我该怎么办?
答案 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
}