在 C# 中,装箱(boxing)和拆箱(unboxing)是用来在值类型(如 int、double 等)和引用类型(如 object)之间进行转换的过程。
装箱(Boxing):
装箱是指将值类型转换为引用类型的过程。当将值类型的数据赋值给一个 object 类型的变量时,就会发生装箱操作。
例如:
int value = 10; // 值类型变量
object obj = value; // 发生装箱,将值类型转换为引用类型
拆箱(Unboxing):
拆箱是指将引用类型转换为值类型的过程。当从 object 类型的变量中取出值类型的数据时,就会发生拆箱操作。
例如:
object obj = 10; // 引用类型变量
int value = (int)obj; // 发生拆箱,将引用类型转换为值类型
需要注意的是,装箱和拆箱会引入一定的性能开销,因为它们涉及到数据类型的转换和内存的重新分配。因此,在性能要求较高的场景下,需要谨慎使用装箱和拆箱操作。