一、建立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 ref和out的使用及區別
1.ref的使用 使用ref進行引數的傳遞時,該引數在建立時,必須設定其初始值,且ref側重於修改 2.out的使用 採用out引數傳遞時,該引數在建立時,可以不設定初始值,但是在方法中必須初始化,out側重於輸出 注釋 當希望方法返回多個值時,可以用out,並且乙個方法中的引數可以有乙個或多個ou...
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 1.out和ref 關鍵字會導致引數通過引用來傳遞 2.ref要求變數必須在傳遞之前進行初始化 3.儘管作為 out 引數傳遞的變數不必在傳遞之前進行初始化,但需要呼叫方法以便在方法返回之前賦值 4.ref 和 out 關鍵字在執行時的處理方式不同,但在編譯時的處理方式相同 5.個人...