ref 是直接修改原有的已经在内存中的对象,不用重新实例化一个对象。返回参数,就是函中可以改你传进的变量值 (相当于C中指针)

例如

   

int a=0;
    public void getInt(ref int b)
    {
      b=12;
    }  
    static void Main(string[] args)
    {
     getInt(a);
     Console.WriteLine(a);ref 是直接修改原有的已经在内存中的对象,而不是重新实例化一个对象     
    }

 

 

而out 和 ref 的功能是一样的  但是 使用ref的时候 在传递变量之前必须给变量初始化,而out 传递变量之前可以不用初始化。

因此 参数分别添加ref 和 out  标示的话 是不可以重载的,如果另一个没有用ref 或者 out  标示的话是可以重载的