c#中和java中可变参数对比

c#中可变参数用关键字params

Code
public class App {
        static void Main() {
            //常规使用方法
            Console.WriteLine( Add( new Int32[] { 1, 2, 3, 4, 5 } ) );

            //另一种调用方法
            Console.WriteLine( Add( 1, 2, 3, 4, 5 ) );

            //当然,参数数目是可变的,但其类型是被约束的
            Console.WriteLine( Add( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ) );

            //如果类型可变,数目可变怎么办?书给出的答案非常简单,就是使用object类型即可
            //备注下下
        }


        /// <summary>
        /// 使用了params关键字
        /// </summary>
        /// <param name="values">int[]</param>
        /// <returns>int[]的和</returns>
        static Int32 Add( params Int32[] values ) {
            Int32 sum = 0;
            for( int x = 0 ; x < values.Length ; x++ )
                sum += values[ x ];
            return sum;

  java中用三个点  ...

 1)、只能出现在参数列表的最后; 

2)、...位于变量类型和变量名之间,前后有无空格都可以;

3)、调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中一数组的形式访问可变参数。

public class Varable {
 public static void main(String [] args){
  System.out.println(add(2,3));
  System.out.println(add(2,3,5));
 }
 public static int add(int x,int ...args){
  int sum=x;
  for(int i=0;i<args.length;i++){
   sum+=args[i];
  }
  return sum;
 }
}

原文地址:https://www.cnblogs.com/dandandeyoushangnan/p/4652696.html