【发布时间】:2011-03-09 13:08:36
【问题描述】:
前几天我正在查看一些代码,我看到了类似(int?)的东西,我认为我以前从未见过。使用 a 是什么意思?在一个类型之后?
【问题讨论】:
前几天我正在查看一些代码,我看到了类似(int?)的东西,我认为我以前从未见过。使用 a 是什么意思?在一个类型之后?
【问题讨论】:
这是一个通用结构,可以包装一个值类型以添加值null。为了更方便地使用这种类型,C# 添加了相当多的编译器魔法。比如短名T?,提升运算符,...
关于 SO 的以下帖子也很有趣:? (nullable) operator in C#
【讨论】:
这是Nullable<Type> 的变体/替代方案。已经看到它与 DateTime 一起使用了很多,以避免默认的 DateTime 值在与日期相关的 DB 列中产生错误。其实挺有用的。
【讨论】:
int?是Nullable<int> 的语法糖。
【讨论】:
这是Nullable<T>(或者在你的情况下是Nullable<int>)的简写语法。
当您需要值类型为 null 时使用此选项,例如 int、Boolean 和 DateTime。
【讨论】:
表示Nullable,所以我们的值类型变量可以为null
【讨论】:
?在类型之后意味着该类型除了其正常值之外还可以具有null 值。
我已经看到主要用于具有Nullable 列的数据库相关类型
【讨论】:
正如其他人所说,int? 是 Nullable<int> 的缩写。
这个article 已经有几年历史了,但它很好地解释了可空类型
【讨论】: