装箱和取消装箱使值类型能够被视为对象。对值类型装箱将把该值类型打包到 i
被“装箱”并赋值给对象 o
。
C# | ![]() |
---|---|
int i = 123; object o = (object) i; // boxing |
然后,可以对对象 o
取消装箱并将其赋值给整型变量 i
:
C# | ![]() |
---|---|
o = 123; i = (int) o; // unboxing |
性能
相对于简单的赋值而言,装箱和取消装箱过程需要进行大量的计算。对值类型进行装箱时,必须分配并构造一个全新的对象。次之,取消装箱所需的强制转换也需要进行大量的计算。有关更多信息,请参见性能。
相关章节
C# 语言规范
有关更多信息,请参见 C# 语言规范中的以下各章节:
-
4.3 装箱和取消装箱