日期:2014-05-19  浏览次数:20939 次

在一个函数体中能否用 ref 呢?
就是一个函数接收了一个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也能--呢?
}

------解决方案--------------------
如下使用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;
}
}
}
------解决方案--------------------
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--;
}
------解决方案--------------------
看来只能用指针了