params 关键字用于定义一个方法的可变参数列表。它允许方法接受任意数量的参数,而不需要事先指定参数的数量。使用 params 关键字,可以更灵活地调用方法,而不必为每个不同数量的参数编写多个方法重载。 要使用 params 关键字,需要在方法的参数列表中将可变参数标记为 params 关键字。这个参数必须是一个数组类型,并且必须是方法参数列表的最后一个参数。当调用方法时,可以传递任意数量的参数,它们将被封装为一个数组,并作为 params 参数传递给方法。
案例
namespace ParamsTest
{
internal class Program
{
static void Main(string[] args)
{
PrintNumbers(1, 2, 3, 4, 5);
Console.ReadKey();
}
static void PrintNumbers(params int[] numbers)
{
foreach (int number in numbers)
{
Console.WriteLine(number);
}
}
}
}
运行:
在可变参数前面加其他的参数,也是可以的
namespace ParamsTest
{
internal class Program
{
static void Main(string[] args)
{
PrintNumbers("fadf", 1, 2, 3, 4, 5);
Console.ReadKey();
}
static void PrintNumbers(string name, params int[] numbers)
{
Console.WriteLine(name);
foreach (int number in numbers)
{
Console.WriteLine(number);
}
}
}
}
运行:
注意点1
可变参数必须为最后一个参数,而且必须是同类型的参数,比如下面的代码是 int 类型
注意点2
一个函数不能同时存在多个可变参数
注意点3
可变参数的值也可以不用传递,但是不建议这么做
代码:
namespace ParamsTest
{
internal class Program
{
static void Main(string[] args)
{
PrintNumbers("fadf");
Console.ReadKey();
}
static void PrintNumbers(string name, params int[] numbers)
{
Console.WriteLine(name);
foreach (int number in numbers)
{
Console.WriteLine(number);
}
}
}
}
运行:
Console.WriteLine 是 C# 常用的打印功能,基本是每天都会用到的,这个大家都很熟吧
Console.WriteLine("姓名:{0},年龄:{1}", "jack", 33);
现在用 params 可变参数来模拟一下这样的效果,代码:
namespace ParamsTest
{
internal class Program
{
static void Main(string[] args)
{
Print("姓名:{0},年龄:{1}", "jack", 33);
Console.ReadKey();
}
static void Print(string content, params object[] objects)
{
string printContent = string.Format(content, objects);
Console.WriteLine(printContent);
}
}
}
运行:
你可能会觉得,用 string.Format 谁不会啊,你这算啥本事啊,非常简单的好吧!
确实简单,其实微软也是这么写的,我只是照搬它的写法而已,哈哈哈。。。
如果这个帖子对你有所帮助,欢迎 关注 + 点赞 + 留言,谢谢!
end