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就更加感激不尽了)

解决方案 »

  1.   

    上面看错了可以这样改 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"};
    }
      

  2.   

    请参考MSDN:方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。当希望方法返回多个值时,声明 out 方法非常有用。使用 out 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 out 参数。方法参数上的 ref 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中
      

  3.   

    aa = new string[]{"cc","dd"};
    bb = new string[]{"ee","ff"};
    能说下为什么要这样么?