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

求助,out参数问题
private   void   Page_Load(object   sender,   System.EventArgs   e)
{
string[]   aa;
string[]   bb;
testes(out   aa,out   bb);
Response.Write(aa[0]);
}
public   void   testes(out   string[]   aa,out   string[]   bb)
{
aa[0]= "cc ";
bb[0]= "dd ";
}
本人想通过testes方法改变两个数组的值。(从没用过out和ref,第一次用)。可是编译时通不过。各位兄弟帮忙看下。先谢了!(能给兄弟讲下out和ref就更加感激不尽了)

------解决方案--------------------
上面看错了

可以这样改

private void Page_Load(object sender, System.EventArgs e)
{
string [] aa;
string [] bb;
testes(out aa,out bb);
Response.Write(aa[0]);
}

public void testes(out string[] aa,out string[] bb)
{
aa = new string[]{ "cc ", "dd "};
bb = new string[]{ "ee ", "ff "};
}
------解决方案--------------------
请参考MSDN:

方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。

当希望方法返回多个值时,声明 out 方法非常有用。使用 out 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 out 参数。

方法参数上的 ref 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中