1 关于重载
原则:有out|ref关键字的方法可以与无out和ref关键字的方法构成重载;但如想在out和ref间重载,编译器将提示:不能定义仅在ref和out的上的方法重载
2 关于调用前初始值
原则:ref作为参数的函数在调用前,实参必须赋初始值。否则编译器将提示:使用了未赋值的局部变量;
out作为参数的函数在调用前,实参可以不赋初始值。
3 关于在函数内,引入的参数初始值问题
原则:在被调用函数内,out引入的参数在返回前至少赋值一次,否则编译器将提示:使用了未赋值的out参数;
在被调用函数内,ref引入的参数在返回前不必为其赋初值。
但比不是说,引用类型就一定不会用到ref关键字,当我们试图将引用类型的重新赋值时
public void Changeref(RefClass rc)
{rc = new RefClass() { IntValue = 1000 };}
如果不加ref ,prc实际上是在函数内部将引用的地址,指向了另一new RefClass(),返回值会发现它的值未发生改变