params 关键字可以指定采用数目可变的参数的方法参数。
可以发送参数声明中所指定类型的逗号分隔的参数列表或指定类型的参数数组。还可以不发送参数。
在方法声明中的params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
下面的示例演示可向params 参数发送参数的各种方法
public class MyClass { public static void UseParams(params int[] list) { for (int i = 0; i < list.Length; i++) { Console.Write(list[i] + " "); } Console.WriteLine(); } public static void UseParams2(params object[] list) { for (int i = 0; i < list.Length; i++) { Console.Write(list[i] + " "); } Console.WriteLine(); } static void Main() { // 你可以给方法传递一个以英文逗号分割开的多个参数 UseParams(1, 2, 3, 4); UseParams2(1, 'a', "test"); // 即使不传递一个参数也没问题 // 以下代码只会输出一个空行 UseParams2(); // 你也可以给方法传递一个数组 // 当然你类型需要匹配才行 int[] myIntArray = { 5, 6, 7, 8, 9 }; UseParams(myIntArray); object[] myObjArray = { 2, 'b', "test", "again" }; UseParams2(myObjArray); // 下面注释的代码会产生一个编译错误 // 原因是数组不能被转换为 int 类型的数组 //UseParams(myObjArray); // 下面的方法不会报错 // 但是会把整个 int 类型的数组 当作一个一个参数来处理 UseParams2(myIntArray); } } /* 输出结果: 1 2 3 4 1 a test 5 6 7 8 9 2 b test again System.Int32[] */
参考:MSDN