out:
由于函数只能有一个返回值,当需要函数处理结果之后有多个返回值,就要用到out。如下例:
static void Math(int[] array, out int max, out int min)//函数的作用:传入一个整形数组,可以传出数组中的最大值和最小值;max接收传出的最大值,min接收传出的最小值;
{
max=array [0];
min=array [0];
for (int i = 0; i < array.Length; i++)
{
if (array[i] > max)
{
max = array[i];
}
if (array[i] < min)
{
min = array[i];
}
}
}
其实,最常用到out的就是int.TryParse(string str,out int i);
ref:是把变量带进方法中,重新赋值之后再带出来。也就是传入的时候传入的是变量的地址,如下例:
static void Test(ref int i)
{
int a = 10;
i = a;
}
当调用这个函数时,如果不加ref,传入的参数i结果不会发生变化,但是加了ref之后,无论i之前为何值,运行函数之后i=10;
最后:out修饰的变量不需要定义初值,ref修饰的变量必须赋初值。