C ref和out學習總結

2021-06-22 13:31:35 字數 741 閱讀 8941

c#中ref和out傳遞引數總結,兩個都可用來傳遞引數,ref使用時必須先進行初始化,out則不需要,只要在返回之前賦值即可,文字廢話到此,下面直接上例子

ref例子

class a

private string name = string.empty;

private int count = 0;

...getname(ref name,ref count);

console.write(「姓名:」 + name + ",數量:" + count);

class b

...

//引數name是1個指向堆疊中值型別為string的指標//引數count是1個指向堆疊中值型別為int的指標

public  bool getname(ref string name,ref int count)

輸出結果:姓名:ching,數量:10

out例子

class a

private string name;

private int count;

...getname(ref name,ref count);

console.write(「姓名:」 + name + ",數量:" + count);

class b

...public  bool getname(ref string name,ref int count)

同樣這個輸出結果:姓名:ching,數量:10

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引數,則方法定義和呼叫方法都必...