黑马程序员技术交流社区

标题: 什么是装箱和拆箱 [打印本页]

作者: 许正龙    时间: 2013-3-27 17:21
标题: 什么是装箱和拆箱
如题,装箱和拆箱在程序中有什么用处?
作者: 邓建军    时间: 2013-3-27 17:46
概念

由于C#中所有的数据类型都是由基类System.Object继承而来的,所以值类型和引用类型的值可以通过显式(或隐式)操作相互转换,而这转换过程也就是装箱(boxing)和拆箱(unboxing)过程。



作者: 张振    时间: 2013-3-27 18:09
楼上太详细了 我表示压力山大 我只有翻书查看资料 手打回复了:
江值类型转换为引用类型的过程叫做装箱,相反,将引用类型转换为值类型的过程叫做拆箱。
1.装箱的例子
装箱允许将值类型隐式转化成引用类型
还是在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
作者: 许正龙    时间: 2013-3-27 19:46
邓建军 发表于 2013-3-27 17:46
  • 值类型。
  • 值类型是在栈中分配内存,在声明时初始化才能使用,不能为null。

  • 谢谢科普,非常详细虽然看了还是晕晕的!~~
    作者: 许正龙    时间: 2013-3-27 19:47
    张振 发表于 2013-3-27 18:09
    楼上太详细了 我表示压力山大 我只有翻书查看资料 手打回复了:
    江值类型转换为引用类型的过程叫做装箱,相 ...

    谢谢,知道是这么个操作叫做装箱,主要是不太明白这样做的意义
    作者: 张振    时间: 2013-3-27 21:22
    许正龙 发表于 2013-3-27 19:47
    谢谢,知道是这么个操作叫做装箱,主要是不太明白这样做的意义

    其实我也想得到指教 估计还没用到吧
    作者: 伊廷文    时间: 2013-3-27 21:40
    属于包装类范围,拆箱是把“引用”类型转换成“值”类型;装箱是把“值”类型转换成“引用类型”;就这么简单




    欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2