ref引數:
通過值傳遞引數是預設的,但是如果想要改為通過引用傳遞引數,可以用ref關鍵字。如果把乙個引數傳遞給方法,並且前面帶有ref關鍵字,那麼,該方法對變數的任何改變都會影響原始物件的值。
傳遞到 ref 引數的引數必須最先初始化。這與 out 不同,後者的引數在傳遞之前不需要顯式初始化。
例子:static void somefunction(int ints,ref int i)
public static int main(string args)
;console.writeline(「i=」 + i);
console.writeline(「ins[0]=」 + ints[0]);
somefunction(ints,ref i);
console.writeline(「i=」 + i);
console.writeline(「ins[0]=」 + ints[0]);
return 0;
}輸出:
i=0ins[0]=0
i=100
ins[0]=100
out引數:
out引數在傳值之前不需要顯式初始化,加上out關鍵字,傳遞的引數為引用傳遞。
例子:static void somefunction2(out int i)
public static int main(string args)
輸出:j=100
C ref和out的區別
首先 兩者都是按位址傳遞的,使用後都將改變原來引數的數值。其次 ref可以把引數的數值傳遞進函式,但是out是要把引數清空,就是說你無法把乙個數值從out傳遞進去的,out進去後,引數的數值為空,所以你必須初始化一次。這個就是兩個的區別,或者說就像有的說的,ref是有進有出,out是只出不進。需求假...
c ref 和 out 的區別
乙個用關鍵字 ref 標示,乙個用 out 標示。牽扯到資料是引用型別還是值型別。一般用這兩個關鍵字你是想呼叫乙個函式將某個值型別的資料通過乙個函式後進行更改。傳 out 定義的引數進去的時候這個引數在函式內部必須初始化。否則是不能進行編譯的。ref 和 out 都是傳遞資料的位址,正因為傳了位址,...
C ref和out的使用
1.用途 在c 中通過使用方法來獲取返回值時,通常只能得到乙個返回值。因此,當乙個方法需要多個返回值的時候,就需要用到ref和out 2.概述 ref關鍵字使引數按引用傳遞。其效果是,當控制權傳遞 用方法時,在方法中對引數所作的任何修改都將反映在該變數中。若要使用ref引數,則方法定義和呼叫方法都必...