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 引的的变量必须要在定义的函数内赋值(不赋值则报错) }