装箱拆箱

http://blog.youkuaiyun.com/xiven/article/details/5378470


(附:在托管C++中,允许直接取加拆箱时第一步得到的实例引用,而直接更改,但C#不行。) 

关于把struct通过interface来直接修改装箱后的struct


通过接口方式,可以达到相同的效果。 实现如下: 
  interface IChange 
  { 
    void Change(Int32 x); 
  } 
  struct A : IChange 
  { 
   … 
  } 
//调用:
  ((IChange)o).Change(200);//改掉了吗?改掉了。 为啥现在可以改? 在将o转型为IChange时,这里不会进行再

次装箱,当然更不会拆箱,因为o已经是引用类型,再因为它是IChange类型,所以可以直接调用Change,于是,更

改的也就是已装箱对象中的字段了,达到期望的效果。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值