【发布时间】:2017-03-19 09:45:02
【问题描述】:
有几个关于nullable类型的问题:
int x;
Console.WriteLine(x);
如果一个变量没有被初始化,这是否意味着它不包含任何内容或
我们可以说它是空的。那么这个空值是否相当于
null?
如果是,那么值类型对象如何包含null 值?如果不,
那么这个空值叫什么?
如果我尝试编译未初始化的int 变量(上面提到的代码),那么编译器会返回一个错误use of unassigned local variable,但它不会告诉我变量中存储了什么。
【问题讨论】:
-
它将有默认值,
int是 0 -
@EhsanSajjad:不,逻辑上 local 变量没有值。
-
“它不会告诉我变量内部存储了什么” - 这是因为对于局部变量,编译器会阻止您在明确分配之前使用它,以避免意外使用。
-
@EhsanSajjad:仅适用于字段。
-
顺便说一句,如果您将其限制为要么 Java 或 C#,那将会很有帮助。规范使用不同的术语来描述这一点。