装箱和拆箱(也叫取消装箱)(Boxing和UnBoxing)

hypothesisxk / 2023-04-28 / 原文

  C# 采用统一的类型系统,因此任意类型的值都可视为 object。 每种 C# 类型都直接或间接地派生自 object 类类型,而 object 是所有类型的最终基类。

只需将值视为类型 object,即可将引用类型的值视为对象。 通过执行装箱(值类型转换为引用类型)取消装箱(引用类型转换为值类型)操作,可以将值类型的值视为对象。

在以下示例中,int 值被转换成 object,然后又恢复成 int

int i = 123;
object o = i; // Boxing
int j = (int)o; // Unboxing