参数数组
C#允许为函数指定一个(只能指定一个特殊参数,这个参数必须是函数定义中的最后一个参数称为参数数组。参数数组允许使用个数不定的参数调用函数,可使用params关键字定义它们。
int SumVals (params int [] vals){}
SumVals(1,2,3,4,5)
引用参数
ref
void ShowDouble (ref int val){}
int myNumber = 5;
ShowDouble (ref myNumber);
用作ref参数的变量有两个限制。首先,函数可能会改变引用参数的值,所以传递的参数要是变量。其次,必须使用初始化过的变量。C#不允许假定ref参数在使用它的函数中初始化。
out
void ShowDouble (out int val){}
ShowDouble (out myNumber);
把未赋值的变量用作ref参数是非法的,但可以把未赋值的变量用作out参数。
另外,在函数使用out参数时,必须把它看成是尚未赋值。因为调用代码会把已赋值的变量用作out参数,但存储在该变量中的值会在函数执行时丢失。
使用out可以明确知道参数是用来输出的。