在编写方法时,不确定这个方法要传入多少个参数,或者随着程序的开发速度,该方法的参数会发生很大变化,在C#中引入了params关键字,使用params修饰object类型的数组并作为方法的参数类型,可以解决方法参数不确定的问题。但是这里有一个问题,这个参数列表中的某个值不确定是否为空,就会发生运行时错误。

static void Main(string[] args)
{
Program p = new Program();
p.ShowInfo("asdf", 100, null);

}

private void ShowInfo(params object[] parameters)
{
string strOutPut = string.Empty;
for (int i = 0; i < parameters.Length; i++)
{
strOutPut += parameters[i].ToString() + "\r\n";
}
Console.WriteLine("参数列表:\n{0}",strOutPut);
Console.Read();
}

分析:当传第三个参数时报错,在调用ToString方法时产生了空引用异常。

注意:在方法声明中params 之后不允许有任何其他的参数,并且在方法声明中只允许一个params关键字。

05-11 13:34