C# ref与out关键字区别

时间:2021-06-22 18:29:58   收藏:0   阅读:0

ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。
      out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。

案例:

Ref

static int GetIntResult( ref float avg, ref int max, ref int min)
        {
           ......
        }

static void Main(string[] args)
        {
            int[] arr = { 1,2,3,4,5,6,7,8,9};
            float avg=0;//ref参数必须在调用前初始化
            int max=0;
            int min=0;
            int sum = GetIntResult(arr, ref avg, ref max, ref min);
        }

Out

 static int GetIntResult(int[] arry, out float avg, out int max, out int min)
        {
            avg=0;

            max=0;//out关键字必须在方法内初始化;

           min=0;

           ...
            return sum;
        }

static void Main(string[] args)
        {
            int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            float avg;//在使用out关键字时,不需要在此处初始化,初始化也不会影响到方法内部的值,所以你初始化没用
            int max;
            int min;
            int sum = GetIntResult(arr, out avg, out max, out min);
            Console.WriteLine("和:{0}\t平均值:{1}\t最大值:{2}\t最小值:{3}", sum, avg, max, min);
            Console.Read();
        }

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!