为了将方法声明为可以接受可变数量参数的方法,我们可以使用params关键字来声明数组,要求:
(1)在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
(2)该参数必须标识一个一维数组,但类型不限,对该参数传递null或者0个数目的数组的引用都是合法的
01
—
实例1
using System;namespace ConsoleApp4
{class Program{static void Main(string[] args){ShowTime(new string[]{ "1","2","3","4","5","6","7","8","9"});Console.ReadKey();}private static void ShowTime(params string[] strs){foreach (var str in strs){Console.WriteLine(str.ToString());}}}
}
运行结果:
02
—
实例2
using System;namespace ConsoleApp4
{class Program{static void Main(string[] args){//ShowTime(new string[]{ "1","2","3","4","5","6","7","8","9"});ShowTypes(new object(), new Random(), new string[] { }, 123,'a');Console.ReadKey();}private static void ShowTime(params string[] strs){foreach (var str in strs){Console.WriteLine(str.ToString());}}public static void ShowTypes(params object[] objects){foreach (var item in objects){Console.WriteLine(item.GetType());}}}
}
运行结果:
注意:对于可接受可变数量参数的方法的调用会对性能造成一定的损失,因为数组是在堆上分配的,数组的元素还得初始化,数组的内存还得被垃圾回收器回收