主要目的:
①学会使用可变数量的参数
②掌握使用时的注意事项
③了解编译器对 params 做了哪些事
主要内容:
注意事项:
①需要使用 params 关键字,传入的是一个数组
②只能作为方法的最后一个参数
③只能传递一维数组
编译器做了哪些事:
①在方法的声明处,给具有 params 标识的参数添加 System.ParamArrayAttribute 特性。
②在方法的调用处,编译器首先查找到具有相同签名的方法,查找是否有没有用 ParamArrayAttribute 标识的参数的方法,如果有,就会生成调用他所需要的代码;如果没有,再去查找使用了 ParamArrayAttribute 修饰的参数的方法,如果找到了,就会生成一个数组,来存放这些参数,并再生成来调用选定的方法的代码。
测试代码如下:
public class Test
{
public static void Main()
{
M("first", new string[]{1,2,3,4,5});
M("two",1,2,3,4,5);
}
public static void M(string s, params int[] myarray)
{
foreach(int str in myarray)
{
System.Console.WriteLine(str.ToString());
}
}
}