C# 参数关键字params的作用

为了将方法声明为可以接受可变数量参数的方法,我们可以使用params关键字来声明数组,要求:

(1)在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。

(2)该参数必须标识一个一维数组,但类型不限,对该参数传递null或者0个数目的数组的引用都是合法的

示例1:

Console.WriteLine(IntAdd());  // 输出0
private static int IntAdd(params int[] values)
{
   var sum = 0;
    for (int i = 0; i < values.Length; i++)
    {
       sum += values[i];
    }
    return sum; 
}

示例2:

DisplayTypes(new object(), new Random(), "string", 10);  
//输出:
//System.Object
//System.Random
//System.String
//System.Int32


public static void DisplayTypes(params object[] objects)
{
   foreach (var item in objects)
   {
      Console.WriteLine(item.GetType());
   }
} 

注意:对于可接受可变数量参数的方法的调用会对性能造成一定的损失,因为数组是在堆上分配的,数组的元素还得初始化,数组的内存还得被垃圾回收器回收