读书人

在一个函数体中能否用 ref 呢?该如何解

发布时间: 2012-01-19 20:57:59 作者: rapoo

在一个函数体中能否用 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--;
}
[解决办法]
看来只能用指针了

读书人网 >C#

热点推荐