将多个可选parameter passing给C#函数
有没有办法设置一个C#函数接受任何数量的参数? 例如,你可以设置一个function,以下所有的工作 –
x = AddUp(2, 3) x = AddUp(5, 7, 8, 2) x = AddUp(43, 545, 23, 656, 23, 64, 234, 44)
使用参数数组和params
修饰符:
public static int AddUp(params int[] values) { int sum = 0; foreach (int value in values) { sum += value; } return sum; }
如果要确保至less有一个值(而不是可能为空的数组),则分别指定:
public static int AddUp(int firstValue, params int[] values)
(在实现firstValue
sum
设置为firstValue
)
请注意,您还应该以普通的方式检查数组引用的无效性。 在该方法中,参数是一个完美的普通数组。 调用方法时,参数数组修饰符只会有所不同。 基本上编译器变成:
int x = AddUp(4, 5, 6);
变成类似于:
int[] tmp = new int[] { 4, 5, 6 }; int x = AddUp(tmp);
你可以用一个完全正常的数组来调用它 – 所以后者的语法在源代码中也是有效的。
C#4.0还支持可选参数,在其他一些情况下可能会有用。 看到这篇文章。