params关键字
1.params是ParamArrayAttribute(参数数组属性)的缩写
2.param解决了C#中不定参数的传递的问题
3.不定参数:不确定参数的个数
4.params将不定参数编译成一个数组提供给coder使用
5.params参数必须定义在参数列表最后面。
public void Test(int a, int b, params int[] arrays)
{
}
6.params在重载函数总调用时编译器会优先调用无params参数的函数
public void Test(params int[] nums)
{
Console.WriteLine("是params参数的函数");
}
public void Test(int a,int b,int c)
{
Console.WriteLine("不是params参数的函数");
}
main
//会调用哪个函数了?????
Program Program = new Program();
Program.Test(1, 2, 3);
输出:“不是params参数的函数”
7.别忘了params本来是数组类型也可以传递数组
int[] arrays = { 1, 2, 3 };
Program.Test(arrays);
8.更别忘了将数组类型定义为Object类型就能传任意对象了
public void Test(params Object [] objs)
{
Console.WriteLine("传递对象");
}
//主函数
Program Program = new Program();
Sokect sokect = new Sokect();
Program.Test(sokect,Program);
9.什么都不传会生成一个长度为0的数组
10.二义性
public void Test(params int[] nums)
{
}
public void Test(params Object [] objs)
{
}
这种重载存在二义性,在不传任何参数的时候报错。