博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

[小技巧]C#值类型按引用赋值 转

Posted on 2009-03-08 20:35  codingsilence  阅读(215)  评论(0编辑  收藏  举报

由于代码需要,要在代码中将一个值类型的变量的引用(变量地址)赋给另一个变量。

int a=1,b=a;
b
=2;

 

如上代码,结构将会是a=1,b=2;而不会是你预想的a=2,b=2;在C#中有三种方式:

一种是ref关键字
这各方法只适用于参数的传递,不适合于赋值语句。

二种是unsafe不安全代码
这种方法可以用C代码一样用&表示变量地址。但也不是很灵活。


三种是装箱,这正是我本文想要说的,其实很简单,只不过是一时用到了就想不到这种方法,我想了好半天才想到这种方法的(高手莫笑我)。

int a=1,b=(int)(object)a;
b
=2;

//结果 a=2,b=2;