ref和out兩個參數的異同

ref

.net的關鍵字,ref關鍵字——讓參數按照引用傳遞。其效果是,當控制權傳遞迴調用方法時,在方法中對參數所做的任何更改都將反映在該變量中;也等同將值類型的數據使用引用傳參。若要使用ref參數,則方法定義和調用方法都必須是顯示使用ref關鍵字。ref是Reference的縮寫。

out

當希望方法返回多個值時,聲明 out方法很有用。使用 out參數的方法仍然可以將變量用作返回類型(請參見 return),但它還可以將一個或多個對象作爲 out參數返回給調用方法。

注意:屬性不是變量,因此不能作爲 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必須在離開函數體前進行賦值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章