CS2L8——变长参数和参数默认值

变长参数

在遇到 函数传入的参数个数 无法确定 时,需要灵活控制传入参数个数时,即可使用变长参数 params

假设一个函数要计算 n 个整数的和,我们就可以使用 params​ 变长参数修饰一个 int[]​ 参数

params int[]​ 意味着可以传入 n 个 int​ 参数,n 可以等于 0,传入的参数会存在 arr​ 数组中

注意:
params​ 关键字后面必为一维数组,数组的类型可以是任意的
函数参数可以有别的参数和 params​ 关键字修饰的函数
函数参数中只能最多出现一个 params​ 关键字 并且一定是最后一组参数 前面可以有 n 个其他参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
static int Sum(params int[] arr)
{
int sum = 0;
for (int i = 0; i < arr.Length; i++)
{
sum += arr[i];
}
return sum;
}

static void Main(string[] args)
{
int sum = Sum(1, 2, 3, 4, 5, 6, 7, 8, 9);
Console.WriteLine(sum);
}

输出:

1
45

参数默认值

有参数默认值的函数,一般称为可选函数,作用是:当外部调用函数时可以不传入有默认值的参数,不传就会使用默认值作为参数的值

注意:支持多参数默认值,每个参数都可以有默认值,如果要混用 可选参数 必须写在 普通参数后面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
static void Speak(string str = "我没什么话可说")
{
Console.WriteLine(str);
}

static void Speak2(string test, string name = "MrTang", string str = "我没什么话可说")
{
Console.WriteLine("只是示例");
}

static void Main(string[] args)
{
Speak();
Speak("hello,world!");
}

输出:

1
2
我没什么话可说
hello,world!