前几天我正在查看一些代码,我看到类似(int?)的东西,我不认为以前曾经看到过。你用的是什么意思?在一个类型?
之后答案 0 :(得分:13)
它是Nullable<T>
的缩写。
这是一个通用结构,可以包装值类型以添加值null
。为了更方便地使用这种类型,C#增加了相当多的编译器魔法。如短名T?
,解除操作员......
SO上的以下主题也很有趣:? (nullable) operator in C#
答案 1 :(得分:6)
这是Nullable<Type>
的变体/替代品。已经看到它在DateTime中使用了很多,以避免默认的DateTime值,该值在与日期相关的DB列中给出错误。实际上非常有用。
答案 2 :(得分:5)
INT?是Nullable<int>
的语法糖。
答案 3 :(得分:4)
这是Nullable<T>
(或在您的情况下为Nullable<int>
)的简写语法。
当您需要将值类型设为null时使用此选项,例如int
,Boolean
和DateTime
。
答案 4 :(得分:3)
它意味着Nullable,所以我们的value-type变量可以为null
答案 5 :(得分:3)
?在类型之后暗示类型除了正常值之外还可以具有null
值。
我已经看到主要用于数据库相关类型,您有Nullable
列
答案 6 :(得分:3)
正如其他人所说,int?
是Nullable<int>
的缩写。
这个article现在已经有几年了,但它是对可空类型的一个很好的解释