装箱和拆箱(也叫取消装箱)(Boxing和UnBoxing)
C# 采用统一的类型系统,因此任意类型的值都可视为 object
。 每种 C# 类型都直接或间接地派生自 object
类类型,而 object
是所有类型的最终基类。
只需将值视为类型 object
,即可将引用类型的值视为对象。 通过执行装箱(值类型转换为引用类型)和取消装箱(引用类型转换为值类型)操作,可以将值类型的值视为对象。
在以下示例中,int
值被转换成 object
,然后又恢复成 int
。
int i = 123;
object o = i; // Boxing
int j = (int)o; // Unboxing