C#中out关键字

发布时间 2023-11-29 10:56:35作者: mingupupup

简介

在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;
      }
  }

运行结果,如下图所示:

image-20231102204104348

实际上,out的执行方式与引用参数几乎完全一样,因为在函数执行完毕后,该参数的值将返回给函数调用中使用的变量。

但是二者还是存在一些重要的区别:

1、把未赋值的变量用作ref参数是非法的,但可以把未赋值的变量用作out参数。

2、在使用out参数时,必须把它看成尚未赋值。

参考书籍

《C#入门经典(第7版)》——Benjamin Perkins、Jacob Vibe Hammer、Jon D. Reid