总结来说:
1、调用带ref关键字的函数,必须对 ref 对应的参数赋值;而out关键字不需要。
2、带ref 关键字的函数内部可以直接使用 ref 对应的参数;out 关键字的函数,必须在函数内部对out对应的参数赋值后才能使用。
(归结1,2点:ref在外面初始化,out在里面初始化)
//refA 必须先赋值
int refA = 0;
void funRef(ref int a)
{
//可直接使用a
int b = a;
a = 10;
}
void tt()
{
funRef(ref refA);
}
//outA在函数外不用先赋值
int outA;
void funOut(out int a)
{
//在函数里a不能直接使用,要先赋值
a = 10;
}
3、两个关键字都能使值类型按引用类型使用,即修改了函数外部申明的变量