out参数:适用于需要在方法内为外部变量赋初值的情况
-
必须在方法内部初始化:传递给
out
参数的变量在调用方法之前不需要初始化,但在方法内部必须被初始化。 -
必须被赋值:方法内部必须为
out
参数赋值,保证方法返回后变量有一个定义明确的值。
static void Main()
{ InitializeValue(out int b); }
static void InitializeValue(out int y)
{ y = 20; }
ref参数:适用于需要在方法内读取和修改外部变量的值的情况
-
必须在使用前初始化:传递给
ref
参数的变量必须在调用方法之前初始化。 -
可能被修改:在方法内部,
ref
参数的值可以被修改,并且这些修改会反映到调用方法的外部。
static void Main()
{
int a = 5;
ModifyValue(ref a);
}
static void ModifyValue(ref int x) { }