0,ref是传递的地址,out是返回值
1,使用ref前必须对变量复制,out不用
2,out的函数会清空变量,即使变量已经复制也不行
3,结束函数时,out引用的变量必须赋值
4,ref引用的变量可以修改,可以不修改

=====================================================ref

protected void Page_Load(object sender, EventArgs e)
{
int ii=10;//ref 必须赋值,不赋值则报错
aa(ref ii);
Response.Write(ii);//输出10
}
//ref
private void aa(ref int i)
{
//i = 20;//ref 引用的变量可以修改,可以不修改
}

=====================================================out

protected void Page_Load(object sender, EventArgs e)
{
int a;//使用out前 可以不对变量赋值
bb(out a);//out的函数会清空变量(即使变量已近赋值)
Response.Write(a);//输出10
}
private void bb(out int i)
{
i = 10;//ref 引的的变量必须要在定义的函数内赋值(不赋值则报错)
}