简介
在C#中可以使用out关键字,指定所给的参数是一个输出参数。out关键字的使用方式与ref关键字相同,都是在函数定义和函数调用中用作参数的修饰符。
一个使用out关键字的例子
internal class Program
{
static void Main(string[] args)
{
int[] arr = { 2, 4, 6, 8, 10, 13 };
int max,min;
double average;
average = CalculateAverage(arr, out max, out min);
Console.WriteLine($"The Max is {max}");
Console.WriteLine($"The Min is {min}");
Console.WriteLine($"The Average is {average}");
}
static double CalculateAverage(int[] arr, out int maxVal, out int minVal)
{
maxVal = arr[0];
minVal = arr[0];
double sum = 0;
double average = 0;
for(int i = 0;i < arr.Length;i ++)
{
sum += arr[i];
if (arr[i] > maxVal)
{
maxVal = arr[i];
}
if (arr[i] < minVal)
{
minVal = arr[i];
}
}
average = sum / arr.Length;
return average;
}
}
运行结果,如下图所示:
实际上,out的执行方式与引用参数几乎完全一样,因为在函数执行完毕后,该参数的值将返回给函数调用中使用的变量。
但是二者还是存在一些重要的区别:
1、把未赋值的变量用作ref参数是非法的,但可以把未赋值的变量用作out参数。
2、在使用out参数时,必须把它看成尚未赋值。
参考书籍
《C#入门经典(第7版)》——Benjamin Perkins、Jacob Vibe Hammer、Jon D. Reid