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