什么是“DateTime?”而不仅仅是C#中的DateTime?
DateTime?
区别DateTime?
和C#中的DateTime
(没有问号)?
DateTime?
可以为null而不是DateTime
值类型后面的问号是Nullable
结构的简写表示法。
表示一个对象,其基础类型是一个值类型,也可以像引用类型一样赋值为null。
Nullable
结构允许您包装值类型(如DateTime
, Int32
, Guid
等),并在某些方面将它们视为引用类型。 它确实变得有点复杂(在赋值,提升运算符和其他东西方面),因此我建议你阅读Nullable Types(C#编程指南)及其相关文章。
可空类型是
System.Nullable
结构的实例。 可空类型可以表示其基础值类型的正常值范围,以及额外的空值。 例如,可以为发音为“Nullable of Int32”的Nullable
分配从-2147483648到2147483647的任何值,或者可以为其分配空值。Nullable
可以赋值true或false,或者为null。 在处理包含可能未赋值的元素的数据库和其他数据类型时,将null分配给numeric和Boolean类型的能力特别有用。 例如,数据库中的布尔字段可以存储值true或false,或者可能未定义。
约会时间? 是另一种编写Nullable
可空(T)结构