在一个函数体中能否用 ref 呢?

cbs2007 2007-04-25 11:00:19
就是一个函数接收了一个ref的引用,然后我想在函数体中再将这个引用传给另一个
请问ref能行吗?怎么用?

比如:

void main()
{
int s=20;
abc(ref s);
}

private void abc(ref int a)
{
int b;
b=?????????? //怎么让b也能引用a的地址呢
b--; //怎么让b--后,main函数中的s也能--呢?
}
...全文
144 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cbs2007 2007-04-25
  • 打赏
  • 举报
回复
谢谢各位,我是用的int[] 的数组进行引用传递,这样不用unself也可以进行同样的操作
jijl2001 2007-04-25
  • 打赏
  • 举报
回复
看来只能用指针了
北京的雾霾天 2007-04-25
  • 打赏
  • 举报
回复
如果使用--就要把*b做为一个整体来处理,比如:
fixed (int* b = &s)
{
(*b)--;
}
jiatong1981 2007-04-25
  • 打赏
  • 举报
回复
int a = 100;
this.fun(ref a);
int ival = a;






private void fun(ref int intag)
{
this.fun1(ref intag);
}

private void fun1(ref int intag1)
{
intag1--;
}
北京的雾霾天 2007-04-25
  • 打赏
  • 举报
回复
或者用-=但是不能使用--:

private void abc(ref int s)
{
unsafe
{
fixed (int* b = &s)
{
*b-=1;
}
}
}
北京的雾霾天 2007-04-25
  • 打赏
  • 举报
回复
如下使用unsafe代码:

private void button1_Click(object sender, EventArgs e)
{
int s = 20;
this.abc(ref s);
}

private void abc(ref int s)
{
unsafe
{
fixed (int* b = &s)
{
*b=*b-1;
}
}
}

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧