c 方法引數ref和out區別

2021-07-02 07:04:47 字數 1289 閱讀 4872

c#方法引數ref和out區別

params 關鍵字可以指定採用數目可變的引數的 方法引數。

可以傳送引數宣告中所指定型別的逗號分隔的引數列表或指定型別的引數陣列。 還可以不傳送引數。

在方法宣告中的 params 關鍵字之後不允許任何其他引數,並且在方法宣告中只允許乙個 params 關鍵字。

class program

}publicclasstestclass

console.writeline();}}

ref 關鍵字會導致通過引用傳遞的引數,而不是值。 通過的效果引用指向該引數的任何更改。方法反映在基礎引數變數在被呼叫的方法上。 引用引數的值與基礎引數變數的值始終是一樣的。

class testref

static void main()

}

out 關鍵字會導致引數通過引用來傳遞。 這與 ref 關鍵字類似,不同之處在於 ref 要求變數必須在傳遞之前進行初始化。 若要使用 out 引數,方法定義和呼叫方法都必須顯式使用 out 關鍵字。

class testout

static void main()

}

下面我自己的理解

out在此處必須先賦值  而ref不需要

而呼叫時候應為out已經有值了所有可以直接用

而ref根本沒有值使用時必須先定義值

(很容易理解的 out就是我會寫**你直接叫我寫我就馬上寫

ref就是 我還不會寫** 你叫我寫 那你先教會我寫)

class program

}publicclasstestclass

publicstaticvoidtestout(out inti)

}

總結:ref和out這兩個關鍵字的區別是:

1、使用ref型引數時,傳入的引數必須先被初始化。對out而言,必須在方法中對其完成初始化。

2、使用ref和out時,在方法的引數和執行方法時,都要加ref或out關鍵字。以滿足匹配。

3、out適合用在需要retrun多個返回值的地方,而ref則用在需要被呼叫的方法修改呼叫者的引用的時候。(本來她是30歲,讓她輸出18歲就可以使用ref 實際的30歲是不會改變的)

out引數和ref引數的區別

out和ref都是在引數傳遞時,傳遞變數的引用。用於希望方法中多個變數值更改後,在方法呼叫後保留更改的值。當乙個方法需要多個返回值時,靠方法返回值就不能勝任,幸好.net有out和ref關鍵字。比如 登入方法,登入結果有成功和失敗,但是如果失敗還要知道原因僅靠返回值就不行了,這個就可以用out和re...

C 之ref引數和out引數的區別

1 什麼是 ref 引數 2 什麼是 out 引數?1 使用 ref 引數時,傳入的引數必須先被初始化。對 out 引數而言,必須在方法中對其完成初始化。2 使用 ref 和 out 時,在方法的引數和執行方法時,都要加 ref 或 out 關鍵字,以滿足匹配。3 out 適合用在需要 return...

C 方法的out引數和ref引數詳解

當乙個方法有多個返回值且是不同型別時,我們可以利用方法的引數 out引數和ref引數。我們先來看看最簡單的引數傳遞 static void main string args public static intadd int a,int b 一看就知道返回結果是10,20,30 那麼再來看看方法的re...