ref 和out傳參的不同

2022-03-15 10:27:34 字數 426 閱讀 7647

今天又遇到這個問題了,問了問同事,他說最近面試的時候,也問道他了,於是給我講了講,現在大概是記住了,記錄下來,以備自用。

首先是看下面的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...