简介
在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