ref和out區別
方法引數上的 ref 方法引數關鍵字使方法引用傳遞到方法的同一個變數。當控制傳遞迴呼叫方法時,在方法中對引數所做的任何更改都將反映在該變數中。 若要使用 ref 引數,必須將引數作為 ref 引數顯式傳遞到方法。ref 引數的值被傳遞到 ref 引數。 傳遞到 ref 引數的引數必須最先初始化。將此方法與 out 引數相比,後者的引數在傳遞到 out 引數之前不必顯式初始化。 屬性不是變數,不能作為 ref 引數傳遞。 如果兩種方法的宣告僅在它們對 ref 的使用方面不同,則將出現過載。但是,無法定義僅在 ref 和 out 方面不同的過載。例如,以下過載宣告是有效的: class MyClass { public void MyMethod(int i) {i = 10;} public void MyMethod(ref int i) {i = 10;} } 但以下過載宣告是無效的: class MyClass { public void MyMethod(out int i) {i = 10;} public void MyMethod(ref int i) {i = 10;} } 方法引數上的 out 方法引數關鍵字使方法引用傳遞到方法的同一個變數。當控制傳遞迴呼叫方法時,在方法中對引數所做的任何更改都將反映在該變數中。 當希望方法返回多個值時,宣告 out 方法非常有用。使用 out 引數的方法仍然可以返回一個值。一個方法可以有一個以上的 out 引數。 若要使用 out 引數,必須將引數作為 out 引數顯式傳遞到方法。out 引數的值不會傳遞到 out 引數。 不必初始化作為 out 引數傳遞的變數。然而,必須在方法返回之前為 out 引數賦值。 屬性不是變數,不能作為 out 引數傳遞。 如果兩個方法的宣告僅在 out 的使用方面不同,則會發生過載。不過,無法定義僅在 ref 和 out 方面不同的過載。例如,以下過載宣告是有效的: class MyClass { public void MyMethod(int i) {i = 10;} public void MyMethod(out int i) {i = 10;} } 而以下過載宣告是無效的: class MyClass { public void MyMethod(out int i) {i = 10;} public void MyMethod(ref int i) {i = 10;} }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-617183/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ref和out的區別
- C#中ref和out的區別C#
- NET|Ref 和out 的區別和聯絡
- out關鍵字和ref關鍵字的區別
- c# ref out 區別 比較 彙總C#
- Rust 中 *、&、mut、&mut、ref、ref mut 的用法和區別Rust
- c#.net中引數修飾符ref,out ,params得區別C#
- 全面分析C#方法中的ref和outC#
- Spring中ref local=""與ref bean=""的區別SpringBean
- 圖解C#的值型別,引用型別,棧,堆,ref,out圖解C#型別
- out,ref,params引數傳遞
- c#基礎系列3—深入理解ref 和outC#
- C#中的ref和out的意義和使用方法C#
- oracle index unique scan/index range scan和mysql range/const/ref/eq_ref的區別OracleIndexMySql
- Vue 中ref()與 reactive() 的區別VueReact
- Lua中呼叫ref和out修飾引數的函式/過載函式函式
- ref和reactiveReact
- 認真總結Vue3中ref與reactive區別和isRef與isReactive 型別判斷VueReact型別
- C#中ref、out及特殊說明引數的用法C#
- vue3 第二天vue響應式原理以及ref和reactive區別VueReact
- 單步除錯 step into/step out/step over 區別詳解除錯
- 和區別
- 簡單介紹Tomcat中catalina.out 和 catalina.log的區別和用途Tomcat
- vue中的 ref 和 $refsVue
- ../和./和/的區別
- if …if 和if …else if 區別
- 和 的區別
- as 和 with的區別
- in 和 exists區別
- ||和??的區別
- /*和/**的區別
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- http和https的區別/get和post的區別HTTP
- webwork 中 external-ref 和interceptor-ref 共同用出現問題Web
- ref
- c# 方法引數(傳值,傳引用,ref,out,params,可選引數,命名引數)C#
- Vue 學習 Ref shallowRef triggerRef customRef (Ref 和 Reactive的對比)VueReact
- undefined 和 null 區別?UndefinedNull