首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“”的目的是什么?

“”的目的是什么?
EN

Stack Overflow用户
提问于 2015-10-18 04:18:26
回答 3查看 67关注 0票数 2

我试着理解移动编程,然后我遇到了这个方法的代码,这个方法应该是将一个字符转换成一个数字。代码正在起作用,但我的问题是,"?“的目的是什么?在int之后。

代码语言:javascript
运行
复制
static int? Translate(char c)
        {
            if ("ABC".Contains(c))
                return 2;
            else if ("DEF".Contains(c))
                return 3;
            else if ("GHI".Contains(c))
                return 4;
            else if ("JKL".Contains(c))
                return 5;
            else if ("MNO".Contains(c))
                return 6;
            else if ("PQRS".Contains(c))
                return 7;
            else if ("TUV".Contains(c))
                return 8;
            else if ("WXYZ".Contains(c))
                return 9;

            return null;

        }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-18 04:22:42

?Nullable<>类的语法糖--在您的例子中,int?实际上是Nullable<Int32>

这个类的目的是允许值类型表示null值,因为它们通常不能(它们是C++术语中的“堆栈”对象)。但是,它涉及装箱,所以只在需要时才使用它们,这与其相关的性能成本。

还请注意,将其设置为null (在您的情况下通过return,或者仅仅是一个正常的赋值)实际上并不会设置对null的引用。这是更多的编译器魔术,它实际上将其设置为new int?(),一个将HasValue属性设置为false的实例。

票数 3
EN

Stack Overflow用户

发布于 2015-10-18 04:21:50

您可以通过两种方式表示值类型是可空的:

  1. 可空的,可空的
  2. int?双倍?

问号只是速记。

票数 0
EN

Stack Overflow用户

发布于 2015-10-18 04:22:15

int?只是nullable<int>的缩写。可空数据类型是可以表示其类型(本例为int)或null的数据类型。32位整数表示任意数字是以下范围:-2,147,483,648至2,147,483,647;但可空整数(int?)可以是该范围内的任何东西,或null

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33194259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档