在 C# 中,int 类型的类实例变量的默认值是多少?
?
例如,在下面的代码中,如果 MyNullableInt
从未被显式赋值,它会有什么值?
class MyClass
{
public int? MyNullableInt;
}
(似乎答案几乎肯定是 null
或 0
,但究竟是哪一个?)
最佳答案
int?
的默认值-- 对于任何使用“type?”的可空类型声明——是null
.
为什么会这样:
int?
是 Nullable<T> 类型的语法糖(其中 T 是 int
),一个结构。 ( reference )Nullable<T>
类型有一个 bool HasValue成员(member),当false
, 使得 Nullable<T>
实例“表现得像”一个 null
值(value)。特别是 Nullable<T>.Equals method被覆盖返回 true
当 Nullable<T>
与 HasValue == false
与实际 null
进行比较值(value)。null
. bool
C# 中的变量是 false
(reference)。因此,HasValue
默认属性 Nullable<T>
实例是 false
;这反过来又使Nullable<T>
实例本身就像null
.关于c# - 可空类型 "int?"(包括问号)的默认值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49273551/