一、建立ref引數
在使用引數時,將引數傳遞給方法使用,而方法中對此值的任何改變並不能影響方法外部的變數。下面乙個例子,控制台輸出4,並沒有對變數進行增量。例如:
class reforout
public static void main(string args)
",i);
console.readline();}}
輸出結果:形式引數i只是傳遞值,沒有傳遞真正的變數i,所以變數i本身的值並沒有改變。
但是,如果,我想通過geti方法,去改變main函式中變數i 的值,那麼我們可以想象,如果變數i本身被傳遞到方法中,那麼就可以完成變數i值被改變:這裡要靠ref關鍵字來實現:
class reforout
public static void main(string args)
",i);
console.readline();}}
輸出結果:變數i本身加1.
二、建立out引數
out引數與ref引數的作用是一樣的,都是為了傳遞值變數的位址,是變數本身被方法改變。但所不同的是,ref引數要求變數在方法外初始化,而out引數則要求變數在方法內初始化。
將上面的例子改寫成out引數:
class reforout
public static void main(string args)
",i);
console.readline();}}
輸出結果:i=5
C 中使用ref和out詳解
摘 要 傳值引數傳遞的是呼叫引數的乙份拷貝,而傳址引數傳遞的是呼叫引數的記憶體位址,該引數在方法內外指向的是同乙個儲存位置。首先,如果不使用這兩個關鍵字,那是什麼樣 呢?看下面的例子 using system class test static void swap int x,int y stati...
使用ref和out引數
ref型別引數側重修改,out型別引數側重輸出 ref在傳入值之前必須先初始化 out在函式內,函式結束之前,即傳出值之前初始化.eg protected void page load object sender,eventargs e int indexref 1 testref ref inde...
使用ref和out引數
通過ref和out關鍵字,可以以引用的方式傳遞任何型別的值。這樣做,將允許改變呼叫過程中使用的實參值。在研究ref和out的機制之前,首先有必要理解為什麼需要以引用方式來傳遞值型別。通常有兩個原因 使方法能改變其實參的值或者允許方法有多個返回值。ref引數修飾符使得c 可以建立按引用呼叫,而不是按值...