params 是C#中的可变参数, params主要的用处是在给函数传参数的时候用,就是当函数的参数不固定的时候。 关于参数数组,需掌握以下几点。
(1)在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字;
(2)参数数组必须是一维数组;
(3)不允许将params修饰符与ref和out修饰符组合起来使用;
(4)与参数数组对应的实参可以是同一类型的数组名(例子 24行),也可以是任意多个与该数组的元素属于同一类型的变量(例子 21、22行);
(5)若实参是数组则按引用传递,若实参是变量或表达式则按值传递。
实参(argument):
全称为"实际参数"是在调用时传递给函数的参数. 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
形参(parameter):
全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一一对应,并且实参必须要有确定的值。
形式为:方法修饰符 返回类型 方法名(params 类型[] 变量名) 如带有参数的SQL 语句,不同的表的字段数量也不同, 当你更新修改的时候就可以用。例如:
1 params using System; 2 public class MyClass 3 { 4 public static void UseParams(params int[] list) 5 { 6 for (int i = 0 ; i < list.Length; i++) 7 { Console.WriteLine(list[i]); } 8 Console.WriteLine(); 9 } 10 public static void UseParams2(params object[] list) 11 { 12 for (int i = 0 ; i < list.Length; i++) 13 { 14 Console.WriteLine(list[i]); 15 } 16 Console.WriteLine(); 17 } 18 19 static void Main() 20 { 21 UseParams(1, 2, 3); 22 UseParams2(1, 'a', "test"); 23 int[] myarray = new int[3] {10,11,12}; 24 UseParams(myarray); 25 26 } 27 28 }
输出:1231atest101112