假如,一个函数不能独立完成功能,比如在两个数中,选出较大的一个数。
至少它需要知道这两个数是什么,这时可以使用参数。
参数
形式参数
记得我们定义函数时写的括号吗,里面是可以声明变量的。
多个变量间用逗号隔开,即便类型相同也需要把类型写完整。
int Max(int l, int r)
{
if (l > r)
return l;
else
return r;
}
这些参数不需要赋值,在函数内会当作他们已经有值。
这些声明的变量,称为形式参数。
实际参数
在调用函数时,需要按照形参的类型和顺序填写值进去。
这些值就是形参的初始值。我们填进去的值称为实参。
var a = Max(2, 5);
var b = Max(int.Parse(Console.ReadLine()), 6 * 6);
变量在使用前必须有初始值,而形参在使用的时候就被当作已经有初始值了。
所以如果我们在调用的时候不填实参会报错。
作用域阻断
当函数声明的形参与同作用域下的变量有同名时,
外部的变量作用域会被阻断,无法延申到函数内部。
函数内对其名字的访问全都是对参数的访问。
值传递
当你传入参数的时候,相当于一次赋值,也就是一次复制。
方法内的形参获得值后就和你的实参没有关系了。
无论如何修改方法内的参数,都不会对你的实参产生影响。
引用类型也是同样,但是引用类型的值是他本身,而不是他的内容。
对内容的修改,出了方法是仍然受影响的。