黑马程序员技术交流社区
标题:
求解装箱和拆箱
[打印本页]
作者:
孙健
时间:
2013-10-26 14:59
标题:
求解装箱和拆箱
本帖最后由 孙健 于 2013-10-26 16:30 编辑
求解装箱和拆箱
作者:
有你珍贵
时间:
2013-10-26 15:42
拆箱是 引用类型转换为值类型。
装箱是 值类型转换为引用类型。
引用类型如 string 类型,数组等。。
值类型 int类型 char类型 bool类型 double类型等。
注意!!!我们在写代码的过程当中,应该尽量的去避免装箱或者拆箱的出现,因为,凡是出现了装箱或者拆箱
都会影响程序运行时间。
不管是发生装箱还是拆箱,必须要复合一个条件:发生拆箱或者装箱的两种类型必须有继承关系。
作者:
nooooy
时间:
2013-10-26 16:00
装箱就是将一个变量的数据转换成Object类型存储起来,你后面在对该变量数据进行修改的时候,该变量的数据值是不会改变的,直到你再对该变量数据进行拆箱操作。
拆箱就是将一个变量数据从Object类型转换成其他的子类型。
作者:
宋清飞
时间:
2013-10-26 16:16
本帖最后由 宋清飞 于 2013-10-26 16:20 编辑
想把一个结构实例当做引用类型对象,就需要装箱。(是隐式转换)
拆箱就是把装箱后的对象转换回值类型。(是显式转换)
装箱:
装箱的过程实际就是制作值类型变量的引用类型副本。所以它的返回值是引用类型副本,在装箱之后,该值有两份副本——原始值类型和引用类型副本,每一个都可以独立操作。
int i=10; //创建并初始化值类型
object oi=i; //创建并初始化引用类型
Console.WriteLine("i:{0},io:{1}",i,oi);
i=12;
oi=15;
Console.WriteLine("i:{0},io:{1}",i,oi);
结果如下:
i:10, io:10
i:12, io:15
复制代码
拆箱:
static void Main()
{
int i=10;
object oi=i; //对i装箱并把引用赋值给oi
int j=(int)oi; //对oi拆箱并把值赋值给j
Console.WriteLine("i:{0},oi:{1},j:{2},i,oi,j");
复制代码
作者:
思·长安
时间:
2013-10-26 22:33
简单点说就一句话,从值类型接口转换到引用类型装箱,从引用类型转换到值类型拆箱。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2