ref和out的區別

2021-09-08 08:20:57 字數 1000 閱讀 2593

ref與out

1.out和ref 關鍵字會導致引數通過引用來傳遞

2. ref要求變數必須在傳遞之前進行初始化

3.儘管作為 out 引數傳遞的變數不必在傳遞之前進行初始化,但需要呼叫方法以便在方法返回之前賦值

4.ref 和 out 關鍵字在執行時的處理方式不同,但在編譯時的處理方式相同

5.個人理解:out可以使用在我們不知道某個變數的值,但呼叫某方法後這個值會改變,並且不希望通過方法返回的方式來獲取改變的值的情況。

特別是我們是返回多個引數型別時(而這些引數沒有組成乙個model型別時),因為retun往往值返回乙個引數型別,這時out很好了.而且個人認為

out不適合用於數的交換,而ref可以用於變數的交換  

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace refouttest

,b=", a, b);

changebyref(ref a,ref b);

console.writeline("

a=,b=

", a, b);

changebyout(out a, out b);

console.writeline("

a=,b=

", a, b);

console.readkey();

}private

static

void change(int x, int y)

private

static

void changebyref(ref

int x,ref

int y)

private

static

void changebyout(out

int x, out

int y)

}}

ref和out的區別

還是以例子來表明吧 1.ref int i 0 有函式fun ref i 和fun i 它們的函式體都是,那麼在執行以下兩段 後 1 int i 0 fun i system.console.writeline i.tostring 2 int i 0 fun ref i system.consol...

ref和out的區別

ref和out的區別在c 中,既可以通過值也可以通過引用傳遞引數。通過引用傳遞引數允許函式成員更改引數的值,並保持該更改。若要通過引用傳遞引數,可使用ref或out關鍵字。ref和out這兩個關鍵字都能夠提供相似的功效,其作用也很像c中的指標變數。它們的區別是 1 使用ref型引數時,傳入的引數必須...

ref和out的區別

簡介 ref和out都是c 中的關鍵字,所實現的功能也差不多,都是指定乙個引數按照引用傳遞。對於編譯後的程式而言,他們之間沒有任何區別,也就是說他們只有語法的區別 主要區別分析 注 這裡只介紹比較重要的區別,其他的區別通過這幾條都可以分析出來 1 static void main string ar...