ASP.NET日期类型validaiton

ASP.NET日期类型validaiton,asp.net,Asp.net,如何在asp.net中检查DateTime数据类型变量是否为null/empty?对于可为null的DateTime类型,您可以这样与null进行比较: DateTime? d = null; if (d == null) //do something 对于不可为空的DateTime类型,可以与默认的MinValue进行比较: DateTime d2; if (d2 == DateTime.MinValue) //do something else 日期时间是一种值类型,因此

如何在asp.net中检查DateTime数据类型变量是否为null/empty?

对于可为null的
DateTime
类型,您可以这样与null进行比较:

DateTime? d = null;
if (d == null)
    //do something
对于不可为空的
DateTime
类型,可以与默认的
MinValue
进行比较:

DateTime d2;
if (d2 == DateTime.MinValue)
    //do something else

日期时间是一种值类型,因此不能为空。您的变量是否实际键入为
DateTime

它默认初始化为DateTime.MinValue,因此您只需检查(除非它的类型为
DateTime?
):


Hasvalue是所有可设为null的类型中都存在的属性。(基本上是一个可为null的泛型类)

DateTime是一个值类型,因此不能为null/空。(参考请参见)

默认情况下,它将获得DateTime.MinValue的值,因此您可以检查它是否等于该值,但这不是最佳解决方案

最好的解决方案是创建这种类型的可空变量。语法如下所示:

Nullable<DateTime> myNullableDate = ...
if(myNullableDate.HasValue) ...
if !d.HasValue
Nullable<DateTime> myNullableDate = ...
if(myNullableDate.HasValue) ...
DateTime? myNullableDate = ...
if(myNullableDate.HasValue) ...