ref :必須是要在函式體外初始化,強調的是傳入外面的值,然後在函式體裡面進行修改,然後再傳出去。
1、ref傳進去的引數必須在呼叫前初始化,out不必,即:
1
2
3
4
5
int
i;
somemethod(
ref
i);
//語法錯誤
somemethod(
out
i);
//通過
out :必須要在函式體內初始化,在外面初始化沒意義。也就是說out型引數,在函式體內是不能接受到函式體外傳入的處世值 的,所以out型引數強調的是 傳出,也就是該值在傳入之前是無關緊要的,
2、ref傳進去的引數在函式內部可以直接使用,而out不可:
public
void
somemethod(
ref
int
i)
public
void
somemethod(
out
int
i)
它們都是引用傳遞,所以它們在函式體裡面進行的修改,都會影響外面的值。
儘管ref和out在執行時的處理方式不同,但它們在編譯時的處理方式是相同的。因此,如果乙個方法採用ref引數,而另 乙個方法採用out 引數,則無法過載這兩個方法。
注意1:屬性不是變數,因此不能作為ref引數傳遞。
注意2:ref傳進去的引數在函式內部可以不被修改,但out必須在離開函式體前進行賦值。
c 中ref與out的區別
一般情況下是乙個方法返回乙個值,當需要乙個方法返回多個值的時候就要用到ref out.他們基本沒什麼區別,就是一些語法區別。1.ref傳進去的引數必須在呼叫前初始化,out不用。int i somemethod ref i 語法錯誤 somemethod out i 正確2.ref傳進去的引數可以直...
c 中ref與out區別
ref 和 out 都是c 中的關鍵字,所實現的功能也差不多,都是指定乙個引數按照引用傳遞。對於編譯後的程式而言,它們之間沒有任何區別,也就是說他們只有語法區別。有如下語法區別 1.ref 傳進去的引數必須在呼叫前初始化,out不必,即 int i somemethod ref i 語法錯誤 som...
C 中out與ref區別
一 ref 參考 與out區別 1 out 只出不進 將方法中的引數傳遞出去,在方法中將該引數傳遞出去之前需要在該方法起始賦初值 在方法外傳遞的該引數可以不用賦值 簡單理解就是 將乙個東西丟擲去之前必須對此東西進行修改,否則就不用丟擲去,修改時的動作必須發生在方法的起始。2 ref 有進有出 在方法...