我知道装箱和拆箱是关于强制转换(真实类型到对象...对象到真实类型)。但我不明白 MSDN 对 Nullable 的说法。这是我不明白的文字:
当可空类型被装箱时,公共语言运行时会自动装箱 Nullable 对象的基础值,而不是 Nullable 对象本身。也就是说,如果 HasValue 属性为 true,则 Value 属性的内容将被装箱。当可为 null 类型的基础值拆箱时,公共语言运行时会创建一个新的 Nullable 结构,并初始化为基础值。Source http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx
当您将对象更改为实数类型时,可为空的实数类型变量将是对象的类型?我不明白这一点?
它的意思是,如果你这样做:
int? x = 5;
object y = x; // Boxing
你最终会得到一个盒装的int
,不是盒装的Nullable<int>
。同样,如果你这样做:
int? x = null; // Same as new Nullable<int>() - HasValue = false;
object y = x; // Boxing
然后 y 最终成为空引用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)