装箱拆箱
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,于是,更
改的也就是已装箱对象中的字段了,达到期望的效果。