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