装箱和拆箱

1 装箱

1.1概念

将值类型准换为引用类型
例如:
int n=10;
object o=n; 装箱

1.2值类型

int double decimal enum struct bool char

1.3引用类型

数组 集合 自定义类 string object类

2 拆箱

2.1 概念

将引用类型转换为值类型
例如:
int nn=(int)o; 拆箱
装箱的时候使用了什么类型,拆箱就用什么类型
则double nn=(double)o; 就不行

3 总结

3.1 装箱和拆箱的判断

string s=“123”;
int n=Convert.ToInt32(s);
并没有发生任何的装箱或者拆箱
看两个类型发生装箱或者拆箱,首先我们要观察的是发生类型转换的这个两个类型是否存在继承关系,如果没有继承关系就不会发生装箱和拆箱

int n=10;
IComparable i=n;
int和Icomparable存在继承关系,则有装箱和拆箱

3.2 总结

装箱:值类型-------->引用类型
拆箱:引用类型------>值类型
我们看两个类型之间是否发生装箱或者拆箱,首先要确定这两个类型之间是否存在继承关系。
如果存在,则有可能会发生拆箱或者装箱,
如果不存在继承关系,则不会发生装箱或者拆箱。
注意:装箱的时候使用什么类型装的箱,拆的时候也得使用对应的类型进行拆箱。(里氏转换)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值