.NET基础--参数传递Out

来源:互联网 发布:出租屋网络配置方案 编辑:程序博客网 时间:2024/06/06 07:17
        static void Main(string[] args)        {            int number;            int result = Test(out number);            Console.WriteLine("number={0}\tresult={1}",number,result);            Console.ReadLine();        }        public static int Test(out int num)        {            num = 5;            num = num + 1;            return 200;        }

结果显示:number=6result=200

解析如下:

1)在方法的参数类型前加Out,那么传参数的时候,也必须在number前加out 表明这个参数不是传入的,而是用来传出值的。

2)如果参数以Out形式传入的,那么在传入前可以不赋初值

3)在方法中对于由Out修饰的参数,必须赋值,并且必须在使用前赋值。

 

实例

<span style="white-space:pre"></span>static void Main(string[] args)        {            int[] numbers = {43, 54, 432, 65, 43, 64, 75, 867, 86, 756, 34, 87};            int sum, max, min;            sum = compute(numbers, out max, out min);            Console.WriteLine("数组之和是:{0}\n最大值是:{1}\n最小值是:{2}",                sum, max, min);            Console.ReadKey();        }        static int compute(int[] numbers, out int max, out int min)        {            int sum = 0;            max = numbers[0];            min = numbers[0];            for (int i = 0; i < numbers.Length; i++)            {                sum += numbers[i];                if (max < numbers[i])                {                    max = numbers[i];                }                if (min > numbers[i])                {                    min = numbers[i];                }            }            return sum;        }

在输出的时候,也要将Out填入.

 

Out是内部为外部变量赋值.

Ref 可以理解成双向的,可以传入也可以传出

 

在传参数的过程中,如果参数有Out或ref修饰的话,那么改变的方法中,参数变量的值,调用 者方法中变量的值也会相应改变.

相当于Out和ref是快捷键


0 0