什么是拆箱和装箱?举例说明

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值