一个 DateTime 可以为空吗?

26
6个回答

49

DateTime是一个值类型,就像intdouble一样,没有有意义的null值。

在VB.NET中,您可以这样编写:

Dim d As DateTime = Nothing

但这只是将 d 设置为 默认的 DateTime 值。在 C# 中,相应的代码如下:

DateTime d = default(DateTime);

...这相当于DateTime.MinValue

话虽如此,还有Nullable<T>类型,用于为任何值类型T提供null值。在C#中,Nullable<DateTime>的简写是DateTime?


4
DateTime? myDate = null;

问号将给您提供可空类型,即可以设置为其本机值或null的类型。

DateTime 本身是值类型,不能为 null。


4

不行,因为DateTime是一个值类型。

不过你可以看一下Nullable<DateTime>(或简写为DateTime?)。


4

不可以--在C#中,DateTime是一个结构体,而结构体(值类型)不能为null。

但是,您可以使用Nullable<DateTime>


2
不,它是一个结构而不是类。可以将其设置为可空类型,例如System.DateTime? myValue; 或者使用System.DateTime.MinValue作为标志值。

注意措辞。Nullable<T>也是一个结构体,可以包含null。 - Justin Niessner

2
通常 DateTime 不能为 null,因为它是一个值类型,但是使用 C# 2 中引入的可空运算符,你可以实现这一点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接