如前面的代码段所示,如果要将参数传递给方法,只需在调用方法时在括号内提供这些参数即可。对于被调用的方法,传入的变量称为“参数”。
方法所接收的参数也是在一组括号中提供的,但必须指定每个参数的类型和名称。该名称不必与参数相同。例如:
public static void PassesInteger()
{
int fortyFour = 44;
TakesInteger(fortyFour);
}
static void TakesInteger(int i)
{
i = 33;
}
在这里,一个名为 PassesInteger 的方法向一个名为 TakesInteger 的方法传递参数。在 PassesInteger 内,该参数被命名为 fortyFour,但在 TakeInteger 中,它是名为 i 的参数。此参数只存在于 TakesInteger 方法内。其他任意多个变量都可以命名为 i,并且它们可以是任何类型,只要它们不是在此方法内部声明的参数或变量即可。
注意,TakesInteger 将新值赋给所提供的参数。有人可能认为一旦 TakeInteger 返回,此更改就会反映在 PassesInteger 方法中,但实际上变量 fortyFour 中的值将保持不变。这是因为 int 是“值类型”。默认情况下,将值类型传递给方法时,传递的是副本而不是对象本身。由于它们是副本,因此对参数所做的任何更改都不会在调用方法内部反映出来。之所以叫做值类型,是因为传递的是对象的副本而不是对象本身。传递的是值,而不是同一个对象。
(摘自 madn.microsoft.com/library)