可变个数形参

 1 package com.cnblogs.java;
 2 /*
 3  * 可变个数形参的使用方法
 4  * 1.格式:对于方法的形参,数据类型 ... 形参名
 5  * 2.可变个数的形参的方法与同名的方法之间构成重载
 6  * 3.可变个数的形参方法在调用时,可以有从0到多个参数
 7  * 4.使用可变个数形参的方法与方法的形参是数组的使用方法一致。
 8  * 一致到认为方法③和⑤是同一个方法的地步,
 9  * 但是方法三是可变个数形参,能包括方法①和②,①②注释掉则自动调用③
10  * 5.若一个方法中存在可变个数形参,则可变个数形参一定要声明在最后如:方法④
11  * 6.在一个方法中最多声明一个可变个数形参
12  */
13 public class TestKeBian {
14     public static void main(String[] args) {
15         TestKeBian kb=new TestKeBian();
16         kb.sayHello();
17         System.out.println();
18         kb.sayHello("@@@");
19         System.out.println();
20         //kb.sayHello(new String[] {"###","$$$","%%%"});//用于数组声明方法的调用
21         kb.sayHello("###","$$$","%%%");//可用于可变形参方法的调用,不可用于数组声明方法
22         
23         System.out.println("

");//换行
24         System.out.println(kb.getSum(1, 5));
25         System.out.println(kb.getSum(1, 3, 5));
26         System.out.println(kb.getSum(1,2,3,4,5,6));
27     }
28     //以下的四个方法之间构成重载
29 /*    public void sayHello(){//方法①
30         System.out.println("Hello World!");
31     }
32     public void sayHello(String str){//方法②
33         System.out.println("Hello"+str);
34     }*/
35     //定义可变个数形参String...args
36     //这种声明方法虽与以上两个方法重载,但也包括以上两个方法
37     //若以上两个方法注释掉,则自动调用此方法来完成输出操作
38     public void sayHello(String...args){//方法③
39         System.out.println("调用了可变个数形参:");
40         for(int i=0;i<args.length;i++){
41             System.out.print(args[i]+"	");
42         }
43     }
44     public void sayHello(int t,String...args){//方法④
45         System.out.println(t);
46         for(int i=0;i<args.length;i++){
47             System.out.print(args[i]+"	");
48         }
49     }
50 //    public void sayHello(String[] args){//方法⑤
51 //        for(int i=0;i<args.length;i++){
52 //            System.out.print(args[i]+"	");
53 //        }
54 //    }
55 //使用可变个数形参的方法可以解决计算几个数和的问题
56     /*public int getSum(int i,int j){
57         return i+j;
58     }
59     public int getSum(int i,int j,int k){
60         return i+j+k;
61     }*/
62     //使用可变个数形参可以计算n个数的和,就可以省略以上两个方法
63     public int getSum(int...arr){
64         System.out.println("调用了");
65         int sum=0;
66         for(int i=0;i<arr.length;i++){
67             sum+=arr[i];
68         }
69         return sum;
70     }
71 }

运行结果:

如果C#要实现这个可变个数形参,则要用到“params”这个关键字

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ConsoleApplication2
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             Program p = new Program();
14             Console.WriteLine(p.getSum(1,2,3,4,5,5));
15             Console.ReadKey();
16         }
17         /// <summary>
18         /// 可变个数形参,用params来实现
19         /// </summary>
20         /// <param name="arr"></param>
21         /// <returns></returns>
22         public int getSum(params int[] arr) { 
23             int sum=0;
24         for(int i=0;i<arr.Length;i++) 
25          {
26             sum+=arr[i];
27          }
28         return sum;
29         }
30     }
31 }

运行结果:

20

原文地址:https://www.cnblogs.com/yunqing/p/4776342.html