C#高级参数 out ref params

一、out参数

作用:在一个方法的内部返回多个不同类型的值;

在方法的返回值中,我们只可以返回一个值;当我们想让方法返回多个值时,可以采用数组,用数组返回;但是数组只能返回多个相同类型的值;所以当我们需要用方法返回多个不同类型的值时,用到out参数;

注意:out参数在使用时,必须在方法内先进行赋值

 1 namespace out参数
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
 8             int max;
 9             int min;
10             int sum;
11             int avg;
12             string a;
13             bool b;
14             GetNumber(nums, out max, out min, out sum, out avg, out a, out b);
15             Console.WriteLine(max);
16             Console.WriteLine(min);
17             Console.WriteLine(sum);
18             Console.WriteLine(avg);
19             Console.WriteLine(a);
20             Console.WriteLine(b);
21             Console.ReadLine();
22         }
23         /// <summary>
24         /// 计算一个数组的最大值,最小值,总和,平均值
25         /// </summary>
26         /// <param name="nums">要求值的数组</param>
27         /// <param name="max">多余返回的最大值</param>
28         /// <param name="min">多余返回的最小值</param>
29         /// <param name="sum">多余返回的总和</param>
30         /// <param name="avg">多余返回的平均值</param>
31         /// <param name="a">多于返回的字符串</param>
32         /// <param name="b">多余返回的布尔值</param>
33         public static void GetNumber(int[] nums,out int max,out int min ,out int sum,out int avg,out string a,out bool b)
34         {
35             //out参数在使用时,必须先对参数进行赋值;
36             max = nums[0];
37             min = nums[0];
38             sum = 0;
39             avg = 0;
40             a = "abc";
41             b = true;
42             for(int i = 0; i < nums.Length; i++)
43             {
44                 if (nums[i] > max)
45                 {
46                     max = nums[i];
47                 }
48                 if (nums[i] < min)
49                 {
50                     min = nums[i];
51                 }
52                 sum += nums[i];
53             }
54             avg = sum / nums.Length;
55 
56         }
57     }
58 }

 

 二、ref参数

能够将一个参数带入方法中进行改变,改变完成之后,再讲这个值带出方法;

注意:ref参数要求必须在方法外进行赋值,而方法内可以不用赋值

 1 namespace complex1
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             int salary = 5000;
 8             JiangJin(ref salary);
 9             Console.WriteLine( salary);
10             Console.ReadKey();
11            
12         }
13         public static void JiangJin(ref int s)
14         {
15             s += 500;
16         }
17         public static void FaKuang(int s)
18         {
19             s -= 500;
20         }
21     }
22 }

 

三、params参数

将实参列表中与可变参数数组一致的元素都当作数组额元素去处理

params可变参数必须是形参列表中的最后一个元素

 1 namespace params练习
 2 {
 3     class Program
 4     {//计算任意多个数的和;
 5         static void Main(string[] args)
 6         {
 7             int sum = Sum(5, 2, 5, 7);
 8             Console.WriteLine(sum);
 9             
10             Console.ReadKey();
11         }
12         public static int Sum(params int[] num)
13         {
14             int sum = 0;
15             for (int i = 0; i < num.Length; i++)
16             {
17                 sum += num[i];
18             }
19             return sum;
20         }
21         
22     }
23 }

 

posted @ 2021-11-21 17:09  无敌小金刚  阅读(46)  评论(0)    收藏  举报