ref和out的使用及區別

2022-06-09 15:15:11 字數 591 閱讀 8964

1.  ref的使用:使用ref進行引數的傳遞時,該引數在建立時,必須設定其初始值,且ref側重於修改;

2. out的使用: 採用out引數傳遞時,該引數在建立時,可以不設定初始值,但是在方法中必須初始化,out側重於輸出;

注釋:當希望方法返回多個值時,可以用out,並且乙個方法中的引數可以有乙個或多個out引數;使用 out 引數,必須將引數作為 out 引數顯式傳遞到方法中,但是out 引數的值不會被傳遞到 方法中,且屬性不是變數,不能作為 out 引數傳遞。

ref是有進有出,而out是只出不進。

舉例如下:

out的使用

class program

",tmp); //這時tmp的值為「在這裡面賦值了」

console.readkey(true);

class user",tmp);

console.readkey(true);

class user {

public void name(ref string tmps)

tmps="傳值之後";

使用ref方法結果輸出:傳值之後

ref和out的原理及區別

一 建立ref引數 在使用引數時,將引數傳遞給方法使用,而方法中對此值的任何改變並不能影響方法外部的變數。下面乙個例子,控制台輸出4,並沒有對變數進行增量。例如 class reforout public static void main string args i console.readline...

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