通俗易懂的ref和out區別

2022-03-05 08:53:21 字數 898 閱讀 1471

refout是c#開發中經常用到的兩個關鍵字,但是很多人沒有搞清楚這兩個關鍵字的具體區別,下面我們來說一下這兩個關鍵的區別。

零、 ref 與 out 的異同

相同:不同:

一、**演示

ref將引數值傳進方法

static void main(string args)

// 傳入的引數值是 50 ,方法中使用的num值也是50

static void reffunction(ref int num)

輸出結果如下圖所示:

out無法將引數值傳入方法

static void main(string args)

// 無法將的引數值50傳入 ,但是必須在方法中初始化

static void outfunction(out int num)

輸出結果如下圖所示:

小拓展:如果乙個方法採用ref或out引數,而另乙個方法不採用這兩類引數,則可以進行過載。如下**示例就是過載,可以通過編譯:

static void function(out int num)

static void function(int num)

通俗易懂 equals 與 的區別

值型別 int,char,long,boolean等 都是用 判斷相等性。物件引用的話,判斷引用所指的物件是否是同乙個。equals是object的成員函式,有些類會覆蓋 override 這個方法,用於判斷物件的等價性。例如string類,兩個引用所指向的string都是 abc 但可能出現他們實...

ref和out的區別

還是以例子來表明吧 1.ref int i 0 有函式fun ref i 和fun i 它們的函式體都是,那麼在執行以下兩段 後 1 int i 0 fun i system.console.writeline i.tostring 2 int i 0 fun ref i system.consol...

ref和out的區別

ref與out 1.out和ref 關鍵字會導致引數通過引用來傳遞 2.ref要求變數必須在傳遞之前進行初始化 3.儘管作為 out 引數傳遞的變數不必在傳遞之前進行初始化,但需要呼叫方法以便在方法返回之前賦值 4.ref 和 out 關鍵字在執行時的處理方式不同,但在編譯時的處理方式相同 5.個人...