複製鏈接
請複製以下鏈接發送給好友

REF

(關鍵字)

鎖定
.net的關鍵字 [1] ref關鍵字--讓參數按照引用傳遞。其效果是,當控制權傳遞迴調用方法時,在方法中對參數所做的任何更改都將反映在該變量中;也等同將值類型的數據使用引用方式傳參。若要使用ref參數,則方法定義和調用方法都必須顯示使用ref關鍵字。ref是 Reference的縮寫。
中文名
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必須在離開函數體前進行賦值。
參考資料