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必須在離開函數體前進行賦值。