1.装箱用于在垃圾回收堆中存储值类型,装箱是值类型到object类型或到此值类型所实现的任何接口类型的隐式转换。对值类型装箱会在堆中分配一个对象实例,并将该值复制到新的对象中。
如:
int i=123;
object o=i;
此语句的结果是在堆上创建对象O,引用int 类型的值,该值是赋给变量i的值类型的一个副本(i,o是有差异的),
class TestBoxing { static void Main() { int i = 123; object o = i; // implicit boxing i = 456; // change the contents of i System.Console.WriteLine("The value-type value = {0}", i); System.Console.WriteLine("The object-type value = {0}", o); } }
输出结果:456
123
取消装箱:取消装箱是从 object 类型到 值类型 或从接口类型到实现该接口的值类型的显式转换。取消装箱操作包括:
检查对象实例,以确保它是给定值类型的装箱值。
将该值从实例复制到值类型变量中。