2018-10-14 ref引用传递 out参数

ref参数

将一个变量传入一个函数中进行 “处理”,“ 处理”完成后,再将“处理”结果带出函数

要求:

函数外必须为变量赋值,而函数内可以不赋值。

语法

形参和实参前都要加ref关键字。

 

 

    static void Main(string[] args)
        {
            int num = 5;

            Add(ref num);


            Console.WriteLine(num);
            Console.ReadKey();


        }
        static void Add(ref int num)
        {
            num += 10;
            Console.WriteLine(num);
        }

  static void Main(string[] args)
        {
            int num = 5;

            Add(ref num);


            Console.WriteLine(num);
            Console.ReadKey();


        }
        static void Add(ref int num)
        {
            num += 10;
            Console.WriteLine(num);
        }

 

out参数

一个函数中如果返回多个不同类型的值,就需要用到out参数。

函数外可以不为变量赋值,函数内,必须为其赋值。

 

static void Main(string[] args)
        {
            //out参数
            //申明一个Number 函数 传递两个值过去,返回最大,最小,和,平均数
            int a = 10;
            int b = 5;

            int _max;
            int _min;
            int _total;
            double _avg;

            Number(a, b,out _max,out _min,out _total,out _avg);

            Console.WriteLine($"max:{_max},min:{_min},total:{_total},avg:{_avg}");

            Console.ReadKey();

        }

        static void Number(int a, int b,out int max,out int min,out int total,out double avg)
        {
            if (a > b)
            {
                max = a;
                min = b;
            }
            else
            {
                max = b;
                min = a;
            }
            total = a + b;
            avg = total / 2;

        }

 static void Main(string[] args)
        {
            //out参数
            //申明一个Number 函数 传递两个值过去,返回最大,最小,和,平均数
            int a = 10;
            int b = 5;

            int _max;
            int _min;
            int _total;
            double _avg;

            Number(a, b,out _max,out _min,out _total,out _avg);

            Console.WriteLine($"max:{_max},min:{_min},total:{_total},avg:{_avg}");

            Console.ReadKey();

        }

        static void Number(int a, int b,out int max,out int min,out int total,out double avg)
        {
            if (a > b)
            {
                max = a;
                min = b;
            }
            else
            {
                max = b;
                min = a;
            }
            total = a + b;
            avg = total / 2;

        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值