ref和Out

中文名
ref
外文名
ref
用    途
C#中关键字通过引用传递参数
引用方法
显式使用
例如:
        
        class RefExample        
        {
            static void Method(ref int i)
            {
                i=44;
            }
            static void Main()
            {
                int val=0;
                Method(ref val);//val is now 44
            }
        }
        
传递到ref参数的参数必须最先初始化。这与 out 不同,out 的参数在传递之前不需要显式初始化。尽管refout在运行时的处理方式不同,但它们在编译时的处理方式是相同的。因此,如果一个方法采用ref参数,而另一个方法采用out 参数,则无法重载这两个方法。
注意:属性不是变量,因此不能作为ref参数传递。
ref和out两个参数的不同在于:
1、ref传进去的参数必须在调用前初始化,out不必,即:
        
        int i;        
        SomeMethod(ref i);//语法错误
        SomeMethod(out i);//通过
        
2、ref传进去的参数在函数内部可以直接使用,而out不可:
        public void SomeMethod(ref int i)        
        {
            int j=i;//通过
            //...
        }
        public void SomeMethod(out int i)
        {
            int j=i;//语法错误
        }
        
3、ref传进去的参数在函数内部可以不被修改,但out必须在离开函数体前进行赋值。
原文地址:https://www.cnblogs.com/wrnsweet/p/8420965.html