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

本文介绍了一种在C#中实现值类型变量引用赋值的方法——通过装箱操作来达到目的。通常情况下,值类型的赋值是复制其值而非引用,但这可能导致预期之外的结果。文中提供了一个具体的示例说明如何利用装箱让两个变量指向同一个值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值