一、什么是可变参数
方法声明时,使用params修饰符声明的参数。
二、params使用时注意事项
1、params必须位于方法参数最后,并且在方法声明中只允许有一个 params 关键字
2、params后面必须跟一个数组
3、与参数数组对应的实参可以是同一类型的数组,也可以是任意多个与该数组的元素属于同一类型的变量
4、若实参是数组则按 引用传递,若实参是变量或表达式则按值传递
5、不允许将params修饰符与ref和out修饰符组合起来使用
三、params的使用
1、传递跟可变参数数组类型一致的元素
static void Main(string[] args)
{
//将实参列表中跟可变参数数组类型一致的元素都当做数组的元素去处理
SubjectScore("张三", "语文成绩:100", "数学成绩:100", "英语成绩:100");
}
public static void SubjectScore(string name,params string[] subscore)
{
for (int i = 0; i < subscore.Length; i++)
{
Console.WriteLine($"{name}的{subscore[i]}");
}
Console.Read();
}
2、传递一个数组
static void Main(string[] args)
{
//将实参列表中跟可变参数数组类型一致的元素都当做数组的元素去处理
string[] scorearr = { "语文成绩:100", "数学成绩:100", "英语成绩:100" };
SubjectScore("张三", scorearr);
}
public static void SubjectScore(string name,params string[] subscore)
{
for (int i = 0; i < subscore.Length; i++)
{
Console.WriteLine($"{name}的{subscore[i]}");
}
Console.Read();
}
3、无参
static void Main(string[] args)
{
SubjectScore("张三");
}
public static void SubjectScore(string name,params string[] subscore)
{
for (int i = 0; i < subscore.Length; i++)
{
Console.WriteLine($"{name}的{subscore[i]}");
}
Console.Read();
}