列举出数组各元素:Sum(1

时间:2021-10-26 08:03:17

小我私家认为,供给params关键字以实现要领形参个数可变是C#语法的一大长处。在要领形参列表中,数组类型的参数前加params关键字,凡是可以在挪用要领时代码越发精练。

例如,下面代码:

class Program { static void Main(string[] args) { Console.WriteLine(Sum(1)); Console.WriteLine(Sum(1, 2, 3)); Console.WriteLine(Sum(1, 2, 3, 4, 5)); Console.ReadKey(); } private static int Sum(params int[] values) { int sum = 0; foreach (int value in values) sum += value; return sum; } }

实现了一个Sum要领,用于接收一组整数,并返回它们的和。参数values被加上params关键字后,在挪用时可以在实参列表中列举出这组整数中的每个元素,非常便利。

关于params关键字的用法,需要注意以下几点:

1. params只能用于一维数组,不能用于多维数组和诸如ArrayList、List<T>等任何类似于数组的调集类型。

2.被加上params关键字的形参,必需是形参列表中最后一个形参,并且要领声明中只允许一个 params 关键字。

3. 用params关键字的要领,有四种挪用形式:

第一种,列举出数组各元素:Sum(1,2,3),这也是最常用的形式;

第二种,像没有加params关键字的数组形参那样,用数组名做实参:Sum(new int[]{1,2,3})或int n=new int[]{1,2,3};Sum(n);;

第三种,加params关键字的参数在挪用时可以省略:Sum();//返回0;这种方法有时可以少界说一个要领重载,但当明确界说了重载int Sum()时,编译器会优先挪用int Sum(),而不是Sum(params int[] values)。而且省略params型参数,要领内部仍会new一个元素个数为0的数组,,效率略查。

第四种,不省略params型参数,用null取代,效率比第三种略高,因为其内部不会new这个数组。