asp.net 中datetime? 和 datetime 有什么区别?

datetime?类型在framework2.0后才有(vs2005以上版本).

他们分别为基本类型和引用类型

基本类型变量在定义一个变量的时候,不允许将该变量设置为null。

但是在有的时候,我们又希望该基本类型拥有可以为null的能力。

所以我们在 该基本类型后面 加? 就可以将该基本类型变成应用类型。

如 int => int? long => long? 等

此时 int? 定义的变量,就是应用类型了,可以为null,而不再是一个基本的类型。

所有的基本类型转换成的引用类型,都有value这个属性,该属性是该应用的值。

所有 datetime = datetime?.value