应用于参数声明,以按引用而不是按值传递参数:
ref:在调用方法之前必须初始化参数。 该方法可以将新值赋给参数,但不需要这样做。
out:该调用方法在调用方法之前不需要初始化参数。 该方法必须向参数赋值。
ref 参数修饰符
若要使用 ref 参数,方法定义和调用方法均必须显式使用 ref 关键字
void Method(ref int refArgument)
{
refArgument = refArgument + 44;
}
int number = 1;
Method(ref number);
Console.WriteLine(number); // 45
注意:传递到 ref 参数的自变量必须先经过初始化,然后才能传递。
out 参数修饰符
若要使用 out 参数,方法定义和调用方法均必须显式使用 out 关键字。
public int GetOut(int a,out int num)
{
num = a;
return num+a;
}
var res= GetOut(2,out int num);
Console.WriteLine(res); //4
Console.WriteLine(num); //2
注意:作为 out 自变量传递的变量在方法调用中传递之前不必进行初始化。 但是,被调用的方法需要在返回之前赋一个值。
out 在方法参数申明,在方法里面赋值,在方法外依然可以获取out变量进行使用。