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...