今天又遇到這個問題了,問了問同事,他說最近面試的時候,也問道他了,於是給我講了講,現在大概是記住了,記錄下來,以備自用。
首先是看下面的code例子
string b="bb";
public void a(ref b)
string d;
public void c(out d)
方法a是引用參
數b但是
b必須先定義並且在方法之前進行初始化,在引用的時候就像一般方法處理即可;方法b是先定義變數d此時不需要初始化,在引用此變數的方法中需要進行初始化,然後可在方法內做任何操作,個人理解方法c等同於下列**:
string d;
public string c(string d)
所有out是在傳進未初始化的引數後在內部做一定的處理,並返回定義的型別。ok game over!
函式傳參,params引數,ref和out引數詳解
一 原來函式這樣傳參 先看乙個函式和函式呼叫。複製 static void main string args static void test int i i 相當於乙個區域性變數 複製 test函式定義了乙個int 型別的變數i作為引數,這個地方相當於宣告了乙個區域性變數,而區域性變數使用之前必須...
ref傳值和out傳值
目錄 ref,out區別 out傳值 ref傳值 1.定義方法時,引數用out修飾,在呼叫該方法的時候,引數也需要用out修飾。2.在定義方法時,必須給引數賦初值。2.在呼叫該方法時,可以賦初值,也可以不賦初值。4.out這個單詞是 出去 的意思,所以引數加out就是將方法裡面賦的那個值傳到外面去了...
ref 和out 傳值異同
ref關鍵字使引數按引用傳遞。其效果是,當控制權傳遞 用方法時,在方法中對引數所做的任何更改都將反映在該變數中。若要使用ref引數,則方法定義和呼叫方法都必須顯式使用ref關鍵字。例如 class refexample static void main 傳遞到ref引數的引數必須最先初始化。這與 o...