C ref引用引數與out輸出引數的使用與區別

2022-06-25 11:06:09 字數 581 閱讀 3374

日期:2020.03.09 15:58

1、傳遞到ref引數的實參引數必須先初始化,方法內也可取到該值

2、傳遞至out引數的實參可以不初始化,因為即使初始化實參,out方法中也無法取得該值,但在方法中必須初始化(即使引數不被使用)

3、無法同時使用ref和out方法,不可以同時過載

4、乙個方法中可以同時使用多個ref或out

總結:ref:是傳入值 但是在經歷ref方法後,會改變傳入的值,側重修改->有進有出;

out:保證每乙個傳出變數都必須被賦值,完全側重在輸出->只出不進;

引用引數ref 輸出引數out

網上看到有些人說,當引數是物件時,ref可以不用寫,如下圖。這樣想其實是有誤的,加不加還是有一點區別的。這裡有必要解釋一下,當引數是對引用型別,即string或者類物件時,不用ref確實也能達到在方法中修改實參的目的。但是,加ref和不加ref還是有一定區別的。這裡我們先想一下值型別引數加ref的情...

C ref和out引數的用法

ref引數 通過值傳遞引數是預設的,但是如果想要改為通過引用傳遞引數,可以用ref關鍵字。如果把乙個引數傳遞給方法,並且前面帶有ref關鍵字,那麼,該方法對變數的任何改變都會影響原始物件的值。傳遞到 ref 引數的引數必須最先初始化。這與 out 不同,後者的引數在傳遞之前不需要顯式初始化。例子 s...

c ref與out的區別

c ref與out的區別 相同點 都是輸出引數 不同點 ref 1 必須初始化,即 必須賦初始值 2.有進有出 3 用在需要被呼叫的方法修改呼叫者的引用的時候。4 是傳遞引數的位址 out 1.不需要初始化,即 不需要賦初始值 2 只出不進 3 用在需要retrun多個返回值的地方 4 返回值 通過...