【发布时间】:2017-11-19 02:27:19
【问题描述】:
如果我创建了一个非引用类型的变量,比如int,可以为空,即int?,这是否意味着我需要在赋值之前使用构造函数?
通常我只是初始化一个非引用类型变量
int foo = 5;
但是如果我有一个可以为空的非引用数据类型变量是否需要初始化,如下所示,还是我仍然可以使用上面的简单初始化?
int? foo = new int();
foo = 5;
【问题讨论】:
-
是的,您仍然可以使用简单的初始化。 :)
-
您可以尝试
int? foo = 5看看效果如何,比输入这个问题要快得多。 -
@Evk 我可以,但我不明白发生了什么以及它是否会在不同的情况下发生变化 - 我宁愿询问和理解,而不是仅仅假设:)
-
对于其他人,我发现这个问题的答案解释了 why @PatrickHoffman 的答案是这样的。 stackoverflow.com/a/3149180/1292918
-
@Toby 如果您想知道它的为什么有效,您可以简单地查看该类型的文档,或者,如果做一些简单的研究没有导致回答(如果你真的费心去做任何事情,它会)你可以问为什么这个任务有效,而不是问如果它有效,这又是什么您可以在几秒钟内轻松搞定。浪费其他人的时间,因为您根本懒得花几秒钟尝试某事或进行简单的网络搜索,这是非常不体贴的。
标签: c# types constructor nullable