38.C# params 可变参数
2024-03-09 本文已影响0人
技术老小子
摘要
C#中的params关键字用于表示方法的参数是可变个数的,即可变的方法参数。在使用params关键字时,方法参数将会自动调用System.Array类中的Length属性,并将其作为实际参数数量传递给方法。
使用params关键字可以方便地编写接受可变参数的方法,这对于编写可重用的方法非常有用。例如,如果我们想编写一个接受可变数量参数的方法,可以将它们存储在一个数组中,然后使用这个数组对参数进行处理。
除了方便地编写可变参数方法外,params关键字还可以提高代码的可读性和可维护性。当方法的参数数量不确定时,使用params关键字可以避免在代码中显式地指定参数数量,使得代码更加简洁和易于理解。
需要注意的是,在使用params关键字时,参数名称必须相同,而参数的数据类型可以不同。此外,params关键字可以在方法定义中的任何位置使用,只要参数数量在调用方法时为0时结束。
params关键字是C#中一个非常有用的特性,它可以方便地编写接受可变参数的方法,并提高代码的可读性和可维护性。
正文
一个例子
static void Main(string[] args)
{
int[] amount = { 100, 200, 400 };
Show();//可以不传入参数
Show(amount);
Show(900,800,600);//这样也可以
}
static void Show(params int[] amount)
{
for (int i = 0; i < amount.Length; i++)
{
Console.WriteLine(amount[i]);
}
Console.WriteLine("Amount...");
}
注:
- 若形参表中含一个参数数组(params形参数组),则该参数数组必须位于形参列表的最后,并且只能使用一次。即在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
- 参数数组必须是一维数组;
- 不允许将params修饰符与ref和out修饰符组合起来使用;
- 不允许将params修饰符与ref和out修饰符组合起来使用;
- 若实参是数组则按引用传递,若实参是变量或表达式则按值传递。
- 若实参是数组则按引用传递,若实参是变量或表达式则按值传递。