装箱拆箱

http://blog.csdn.net/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,于是,更

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


posted on 2014-07-02 18:30  norsd  阅读(114)  评论(0编辑  收藏  举报

导航