【问题标题】:What is (<type>?)?什么是(<类型>?)?
【发布时间】:2011-03-09 13:08:36
【问题描述】:

前几天我正在查看一些代码,我看到了类似(int?)的东西,我认为我以前从未见过。使用 a 是什么意思?在一个类型之后?

【问题讨论】:

    标签: c# types


    【解决方案1】:

    Nullable&lt;T&gt;的缩写。

    Nullable types in C#

    这是一个通用结构,可以包装一个值类型以添加​​值null。为了更方便地使用这种类型,C# 添加了相当多的编译器魔法。比如短名T?,提升运算符,...

    关于 SO 的以下帖子也很有趣:? (nullable) operator in C#

    【讨论】:

    • 括号是用于强制转换的,但你可能知道。
    • 我认为 OP 使用括号作为一种引号。但是选角也很有意义。为了决定我们需要更多的上下文。
    • 我了解选角,这不是问题(显然你不知道我知道),所以如果我有点含糊,我深表歉意。我主要关心的实际上是 Nullable 部分。 “语法糖”很难用谷歌搜索。再次感谢。
    • 我同意。无法搜索它们会使原本微不足道的问题变得烦人。
    【解决方案2】:

    这是Nullable&lt;Type&gt; 的变体/替代方案。已经看到它与 DateTime 一起使用了很多,以避免默认的 DateTime 值在与日期相关的 DB 列中产生错误。其实挺有用的。

    【讨论】:

      【解决方案3】:

      int?是Nullable&lt;int&gt; 的语法糖。

      【讨论】:

        【解决方案4】:

        这是Nullable&lt;T&gt;(或者在你的情况下是Nullable&lt;int&gt;)的简写语法。

        当您需要值类型为 null 时使用此选项,例如 intBooleanDateTime

        【讨论】:

          【解决方案5】:

          表示Nullable,所以我们的值类型变量可以为null

          【讨论】:

            【解决方案6】:

            ?在类型之后意味着该类型除了其正常值之外还可以具有null 值。

            我已经看到主要用于具有Nullable 列的数据库相关类型

            【讨论】:

              【解决方案7】:

              正如其他人所说,int?Nullable&lt;int&gt; 的缩写。

              这个article 已经有几年历史了,但它很好地解释了可空类型

              【讨论】:

                猜你喜欢
                • 2016-08-26
                • 1970-01-01
                • 2011-04-19
                • 2013-10-15
                • 2019-02-23
                • 2011-01-27
                • 1970-01-01
                相关资源
                最近更新 更多