1.装箱,值类型向引用类型转换:
在托管堆中分配内存,分配的内存量是类型各字段所需的内存量+类型对象指针所需的内存量+同步块索引所需的内存量。
值类型的字段复制到分配好的内存中
返回对象地址,现在对象地址是对象引用
2.拆箱,引用类型向值类型转换:
获取已装箱类型中的未装箱部分,也就是对象的原始值的各个字段
复制字段的值从堆中到栈中的值类型实例中
//装箱的例子 //装箱允许将值类型隐式转化成引用类型还是在Main方法里面 iint i = 2008; object obj = i; Console.WriteLine("1.i的值为{0},装箱之后的对象为{1}",i,obj); i = 927; Console.WriteLine("2.i的值为{0},装箱之后的对象为{1}",i,obj); Console.ReadKey(); //程序运行结果 //1.i的值为2008,装箱之后的对象为2008. //2.I的值为927,装箱之后的对象为2008 //拆箱例子 //拆箱允许将引用类型显示转换为值类型,下面通过一个实例演示拆箱的过程 int i = 112; object obj = i; Console.WriteLine("装箱操作:值为{0},装箱之后的对象为{1}",i,obj); int j = (int)obj; Console.WriteLine("拆箱操作,装箱的对象为{0},值为{1}", obj, j); Console.ReadKey(); //程序运行后的结果 //装箱操作:值为112,装箱之后对象为112 //拆箱操作:装箱对象为112,值为112