为了将方法声明为可以接受可变数量参数的方法,我们可以使用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()); } }
注意:对于可接受可变数量参数的方法的调用会对性能造成一定的损失,因为数组是在堆上分配的,数组的元素还得初始化,数组的内存还得被垃圾回收器回收