【问题标题】:What's the difference between 'int?' and 'int' in C#?'int' 和有什么区别?和 C# 中的“int”?
【发布时间】:2010-09-12 09:49:36
【问题描述】:

我 90% 确定我之前在 stackoverflow 上看到过这个答案,事实上我从未见过“int?”在这里看到之前的语法,但是无论我如何搜索我都找不到以前的帖子,这让我发疯了。

可能是我不小心吃到了奇怪的蘑菇,但如果我不是,如果有人能找到之前的帖子,请指出或重新解释一下吗?我的 stackoverflow search-fu 显然太低了....

【问题讨论】:

    标签: c# syntax types nullable


    【解决方案1】:

    Int 不能接受 null 但如果开发人员使用的是 int?然后你将 null 存储在 int 中 喜欢 诠释我=空; // 不接受 诠释?我=空; //它的工作 主要用于MVC Pagelist中的分页

    【讨论】:

    • 这似乎和其他答案一样。
    【解决方案2】:

    当您期望整数中有一个空值时,您可以使用它,尤其是当您使用 CASTING 时 例如:

    x= (int)y;
    

    如果 y = null 那么您将遇到错误。 你必须使用:

    x = (int?)y;
    

    【讨论】:

      【解决方案3】:

      int?是可空的。

      MSDN:Using Nullable Types (C# Programming Guide)

      【讨论】:

        【解决方案4】:

        符号?在 int 之后意味着它可以为空。

        那个?符号通常用于变量可以接受空值或整数或者返回整数或空值的情况。

        希望使用上下文有所帮助。通过这种方式,您不仅限于处理整数。

        【讨论】:

          【解决方案5】:

          int 属于 System.ValueType,不能有 null 作为值。在处理元素可以具有空值的数据库或其他类型时,检查元素是否为空可能很有用。那是什么时候int?发挥作用。诠释?是一个可以为空的类型,其值可以从 -2147483648 到 2147483648 和 null。

          参考:https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx

          【讨论】:

            【解决方案6】:

            int?和 Nullable 是一样的。它允许您在 int 中包含“null”值。

            【讨论】:

              【解决方案7】:

              int?是Nullable<int> 的简写。

              This 可能是您要查找的帖子。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2012-08-30
                • 2017-02-23
                • 2021-01-05
                • 1970-01-01
                • 2020-05-05
                • 2015-11-04
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多