什么是(<type>?)?</type>

时间:2011-03-09 13:08:37

标签: c# types

前几天我正在查看一些代码,我看到类似(int?)的东西,我不认为以前曾经看到过。你用的是什么意思?在一个类型?

之后

7 个答案:

答案 0 :(得分:13)

它是Nullable<T>的缩写。

Nullable types in C#

这是一个通用结构,可以包装值类型以添加​​值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时使用此选项,例如intBooleanDateTime

答案 4 :(得分:3)

它意味着Nullable,所以我们的value-type变量可以为null

答案 5 :(得分:3)

?在类型之后暗示类型除了正常值之外还可以具有null值。

我已经看到主要用于数据库相关类型,您有Nullable

答案 6 :(得分:3)

正如其他人所说,int?Nullable<int>的缩写。

这个article现在已经有几年了,但它是对可空类型的一个很好的解释