C#2010 不定参数
在之前介绍的函数中,参数的数量是在编写函数时就进行了严格定义,在使用函数时,必须按照定义函数时的参数数量、顺序、数据类型进行传参。然而在处理一些特殊的数学问题时,往往需要根据使用函数时输入的参数来定义参数数量,例如,求任意个数字的平均值等。此时,就需要使用到不定参数这一概念。
不定参数是函数参数的一个重要概念,其允许在使用函数时,为函数定义任意数量的参数,并将函数的所有参数视为一个数组。这样,程序就可以通过遍历的方式检索每一个参数的值,并进行处理。定义不定参数的函数需要使用params关键字,其方法如下所示。
[Modifier] Type FunctionName(params ArrayType ArrayName)
{
//……
}
在上面的代码中,中括号内的关键字为可选内容,Modifier关键字表示函数的修饰符;Type关键字表示函数的返回值数据类型;FunctionName关键字表示函数的名称;ArrayType表示不定参数数组的数据类型;ArrayName表示不定参数数组的名称。例如,编写一个计算多个数字平均值的函数,代码如下。
static double ave(params double[] arr)
{
double sum = 0;writeline函数
for (int i = 0; i < arr.Length; i++)
{
sum += i;
} return sum / (arr.Length);
}
在上面的代码中,预先将一个双精度的数组作为函数的参数,然后在函数内通过累加的方式求得数组所有元素之和,最后再除以数组的长度,返回数组所有元素的平均值。在调用该函数时,可以直接将任意数量的数字作为函数的参数,代码如下。
Console.WriteLine(ave(1 , 2 , 3 , 4 , 5));//输出:3
在定义和使用不定参数的函数时,如果定义的函数包括若干普通的参数,则应把所有普通的参数放在参数序列的前面,将不定参数数组放在参数序列的末尾。例如,编写一个既可以求若干数字最大值又可以求其最小值的函数,既可以先编写一个字符串数据类型的开关进行判定,代码如下。
static double maxOrMin(string str , params double[] arr)
{
double max = arr[0] , min = arr[0] , none = 0;
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] > max)
max = arr[i];
else if (arr[i] < min)
min = arr[i];
}
switch (str){
case "max":
return max;
case "min":
return min;
default:
return none;
}
}
在执行调用该函数时,可以先以max或min等字符串作为开关,定义函数计算的是哪一种值,然后再添加数字,代码如下。
Console.WriteLine(maxOrMin("max", 1, 2, 3, 4, 5, 6, 7, 8));//输出:8
Console.WriteLine(maxOrMin("min", 1, 2, 3, 4, 5, 6, 7, 8));//输出:1
不定参数的参数数组只能是一维数组。在程序设计中,不定参数是一项非常重要的功能,由于其可以根据调用函数决定参数的数量,因此可以提高程序的智能化,使一个函数可以面向更多的功能。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论