C# out、ref在方法中使用

out、ref

ref关键字用于将当前函数中变量的内存地址直接传递给另外一个函数中。这种方式可以让其他函数更改当前函数的变量。

using System;

namespace MyNameSpace1
{
    class Program1
    {
        // 使用ref关键字的时候,在函数的参数前面必须加上ref,以及在调用的时候,参数前面也必须加上ref。
        static int Result1(ref int x, ref int y)
        {
            x += 1;
            y += 1;
            return x + y;
        }

        static void Main(string[] args)
        {
	    int x = 1;
	    int y = 2;
	    Result1(ref x, ref y)
            // 输出结果 "x:2 y:3",表示当前函数中的变量已经发生改变了。
	    Console.WriteLine("x:{0} y:{1}", x, y)
        }
    }
}

out: 用于当函数返回的类型不同的时候使用。
使用的时候必须先将out相关的参数进行赋值。

using System;

namespace MyNameSpace1
{
    class Program1
    {
        static void Result2(int[] ints, out int max, out int min, out float average)
        {
            max = ints.Max();
            min = ints.Min();
            average = 0;
            foreach (var i in ints) {
                average += i;
            }
            average /= ints.Length;
        }


        static void Main(string[] args)
        {
            int[] ints= {1, 2, 3, 4, 5};
            int max, min;
            float average;
            Result2(ints, out max, out min, out average);
            Console.WriteLine("max:{0} min:{1} average:{2}", max, min, average);


        }
    }
}

posted @ 2022-12-20 15:13  枸杞泡茶呀  阅读(63)  评论(0)    收藏  举报