一:首先两者都是引用传递,都是按地址传递的。
二: 区别
(1)ref 默认必须初始化,out 不需要显式初始化。例如:
int num1=; int num2; refMethod(ref num1); outMethod(out num2);
(2)必须在方法返回之前为 out 参数赋值,ref则不是必须的,例如:
public static void refMethod(ref int num)
{
num = ; //不是必须的
}
public static void outMethod(out int num)
{
num = ; //必须在方法返回之前赋值
}
或者说ref是有进有出,out是只出不进 。