数组传递:C#中使用ref和out传递数组的方法

刚刚学会使用使用ref和out传递数组(downmoon),就希望与大家分享,希望给新手一点帮助吧,呵呵,应为我们这个大家庭聚集的都是一批自学编程的爱好者,希望大家都能把自己的学习经验体会写出来分享。
1、与所有的out参数一样,在使用数组类型的out参数前必须先为其赋值,即必须由接受方为其赋值。例如:
publicstaticvoidMyMethod(outint[]arr)
...{
arr=newint[10];//数组arr的明确委派
}
2、与所有的ref参数一样,数组类型的ref参数必须由调用方明确赋值。因此不需要由接受方明确赋值。可以将数组类型的ref参数更改为调用的结果。例如,可以为数组赋以null值,或将其初始化为另一个数组。例如:
publicstaticvoidMyMethod(refint[]arr)
...{
arr=newint[10];//arr初始化为一个新的数组
}
下面的两个示例说明out和ref在将数组传递给方法上的用法差异。
示例1
在此例中,在调用方(Main方法)中声明数组myArray,并在FillArray方法中初始化此数组。然后将数组元素返回调用方并显示。
usingSystem;
classTestOut
...{
staticpublicvoidFillArray(outint[]myArray)
...{
//初始化数组(必须):
myArray=newint[5]...{1,2,3,4,5};
}

staticpublicvoidMain()
...{
int[]myArray;//初始化数组(不是必须的!)

//传递数组给(使用out方式的)调用方:
FillArray(outmyArray);

//显示数组元素
Console.WriteLine(\"数组元素是:\");
for(inti=0;i<myArray.Length;i++)
Console.WriteLine(myArray[i]);
}
}
输出
数组元素是:
1
2
3
4
5
示例2
在此例中,在调用方(Main方法)中初始化数组myArray,并通过使用ref参数将其传递给FillArray方法。在FillArray方法中更新某些数组元素。然后将数组元素返回调用方并显示。
usingSystem;
classTestRef
...{
publicstaticvoidFillArray(refint[]arr)
...{
//根据需要创建一新的数组(不是必须的)
if(arr==null) [Page]
arr=newint[10];
//否则填充数组,就可以了
arr[0]=123;
arr[4]=1024;
}

staticpublicvoidMain()
...{
//初始化数组:
int[]myArray=...{1,2,3,4,5};

//使用ref传递数组:
FillArray(refmyArray);

//显示更新后的数组元素:
Console.WriteLine(\"数组元素是:\");
for(inti=0;i<myArray.Length;i++)
Console.WriteLine(myArray[i]);
}
}
输出
数组元素是:
123
2
3
4
1024
1
Tags:  jsp传递数组 vc数组传递 数组的传递 数组传递

延伸阅读

最新评论

发表评论