ref ,out 的學習筆記

2022-03-05 23:20:01 字數 409 閱讀 9082

引用引數:

ref 關鍵字

方法的宣告時,將方法的引數標記為ref,同時該方法可以對他接收到的任何ref引數進行修改。並且在方法對ref 引數進行修改後。原始的ref 引數(傳入變數)也會改變。

在呼叫方法時向方法傳遞ref 引數的變數要先對變數進行初始化,(否則vs 提示錯誤資訊:use of unassigned local variable 'x' )。因為方法可能會在未對該引數進行賦值就其讀取資料。

輸出引數:

關鍵字out

方法宣告時,如果乙個引數被標記為 out ,編譯器就會核實在方法所有的正確返回的**路徑中,是否對都對該引數進行了賦值。

在呼叫方法時向方法傳遞out 引數的變數的值是由方法內部賦給的。(該變數可以未進行初始化)

(以上是個人,看c#本質論4.0的筆記)

ref out對比學習

前面對ref引數和out引數各自的功能特點已經介紹了,現在我們來對比學習這兩個高階引數 區別 傳入ref引數時傳入的引數必須先初始化,而對out而言,在方法中需要對該引數進行初始化。使用ref引數和out引數在方法的引數和執行方法上都需要加上關鍵字,以滿足一一匹配。相同之處 通過方法體的內部來改變方...

C 學習 函式的ref out引數

函式引數預設是值傳遞的,也就是 複製乙份 通過函式的處理對數值本身並沒有影響,如果函式想對數值本身產生影響就需要使用相應的引數。ref必須先初始化,因為是引用,所以必須先 有 才能引用。使用ref如果未進行初始化,將報出如圖所示的錯誤使用了未賦值的區域性變數 age 加上ref之後傳參傳的是引用而不...

C 學習簡述 ref out 可變引數 遞迴

一 ref out 共同點 兩者都是對基本型別 int bool float double 等 以及string的值進行修改。不同點 ref是對有值引數 有初始化的引數 經行修改,out是對無值引數 沒有經行初始化的引數 修改。二 可變引數params static int sum int nul,...