c# 拆箱装箱

C#中避免不必要装箱与拆箱的方法.pdf

 

 

 

 

 

 

 

 

结论:

值类型数据存储在栈上,作用域结束回收,

引用类型数据存储在堆上,以及有关实例的一些额外数据,  比如方法索引表,在栈上存储指向堆数据的地址,

避免装箱:

装箱就是值类型需要访问引用类型的方法,比如tostring(),它需要转换成引用类型,通过override的方式,在值类型中,重写引用类型的方法,就会直接定位值类型的方式

避免拆箱:

拆箱,是值类型之前转换成引用类型了,而又想访问值类型的方法,或者字段,又要拆箱,比如struct a:interface b,如果一个object c=(object)a,如果c想访问a里面的方法,就得拆箱,可以通过把方法定义在接口里面,这样(b)c,访问方法,就不用拆箱了

                        

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TO_ZRG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值