ref關鍵字的用法

2022-08-31 18:21:12 字數 605 閱讀 1906

ref關鍵字通過引用(而非值)傳遞引數。 

通過引用傳遞的效果是,對所呼叫方法中的引數進行的任何更改都反映在呼叫方法中。

例如,如果呼叫方傳遞本地變數表示式或陣列元素訪問表示式,所呼叫方法會將物件替換為 ref 引數引用的物件,然後呼叫方的本地變數或陣列元素將開始引用新物件。

若要使用ref引數,方法定義和呼叫方法均必須顯式使用ref關鍵字,如下面的示例所示。

傳遞到ref形參的實參必須先經過初始化,然後才能傳遞。 

這與out形參不同,在傳遞之前,不需要顯式初始化該形參的實參。  有關詳細資訊,請參閱 out。

類的成員不能具有僅在refout方面不同的簽名。 

如果型別的兩個成員之間的唯一區別在於其中乙個具有ref引數,而另乙個具有out引數,則會發生編譯錯誤。 

ref 關鍵字out關鍵字

using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace outandref ref修飾方法的引數,在呼叫的時候必須...

ref關鍵字 out關鍵字 區別

ref 和 out 關鍵字比較怪,他們在方法的引數中使用,今天對他們做了認真的研究 msdn上的定義 ref關鍵字使引數按引用傳遞。其效果是,當控制權傳遞 用方法時,在方法中對引數所做的任何更改都將反映在該變數中。若要使用ref引數,則方法定義和呼叫方法都必須顯式使用ref關鍵字。out關鍵字會導致...

sv中ref 關鍵字

sv中增加了一種方式ref,指定為引用而不是複製。將temp 傳進來,經過task get操作後,外面的temp 佇列資料也會減少,如果沒有ref,那麼僅僅是複製乙個temp 傳進去,外面的temp 不會受到影響。注意 ref指示的變數應該是區域性變數,也就是automatic型別。如果資料變數被宣...