今天的内容主要是参数数组,C#允许函数指定一个(只能指定一个)特定的参数,这个参数必须是函数定义中最后一个参数,成为参数数组。
参数数组可以使用个数不定的参数调用函数,可以使用params关键字定义它们。
定义使用参数数组的函数时,需使用下列代码:
static<returnType><functionName>(<p1Type><p1Name>,…,params<type>[]<name>)
{
…
return<returnType>
}
使用下面的代码可以调用该函数:
<functionName>(<p1>,…,<val1>,<val2>,…)
其中<val1>和<val2>等都是type类型的值,用于初始化<name>数组。可以指定的参数个数几乎不受限制。唯一的限制就是它们都必须是<type>类型,甚至可以根本不指定参数。
这一点使参数数组特别适合于为在处理过程中要使用的函数指定其他信息。
例如,嘉定有一个GetWord(),它的第一个参数是一个string值,并返回字符串中的第一个单词:
string firstWord=GetWord("This is a sentence.");
其中firstWord被赋予字符串This。可在GetWord()中添加一个params参数,以根据其索引选择另一个要返回的单词。
string firstWord=GetWord("This is a sentence.",2);
假定第一个单词计数为1,则firstWord就被赋予字符串is。
也可以在第三个参数中限制返回字符的个数,同样通过params来实现。
stirng firstWord=GetWord("This is a sentence.",4,3);
此时,firstWord被赋予字符串sen.
class program
{
static int sumVals(params int[] vals)
{
int sum=0;
foreach(int val in vals)
{
sum+=val;
}
return sum;
}
static void Main(string[] args)
{
int sum=sumVals(1,5,2,9,8);
Console.WriteLine("Summed values={0}",sum);
Console.ReadKey();
}
}
其中
static int sumVals(params int[] vals)
{
int sum=0;
foreach(int val in vals)
{
sum+=val;
}
return sum;
}
用关键字 params定义函数sumVals,该函数可以接受任意个int参数(但不接受其他类型的参数)
感觉这个还是不太好理解,明天还需要加强。