引數修飾符out 和 ref的區別

2022-01-14 13:01:38 字數 903 閱讀 8759

1、如果乙個方法中的變數在使用out作為引數時,在方法中對out引數所作的更改都會反映到該變數。

static

void method(out

int ivalue)

static

void main()

2、若要使用out引數,方法定義以及方法的呼叫都必須顯示使用out關鍵字;

3、不必初始化作為out引數傳遞的變數,因為out引數在進入方法後清空自己,也因為這個原因必須在方法返回之前為out引數賦值。(只有位址沒有值的引數是不能被.net接受的)。ref要求變數必須在傳遞之前進行初始化。

1、當乙個方法在使用ref引數時,在方法中對ref引數所作的任何更改都將反映在該變數中。

static

void method(ref

int ivalue)

static

void main()

2、如果使用ref引數,則必須將引數作為ref引數顯示傳遞到方法。ref引數的值可以被傳遞到ref引數。

3、ref引數傳遞的變數必須初始化,因為ref引數在進入方法後還是它自己,它這個位址指向的還是原來的值,正因為這個原因ref引數可以在使用它的方法內部不操作。這與out不同,out的引數在傳遞之前不需要顯示初始化。

public

static

string testout(out

string str)

public

static

void testref(ref

string str)

public

static

void testnoref(string refstr)

static

void main()

C 中Out和Ref引數修飾符

以下為大家分析一下。傳值 比方你又乙份文件,假設採用傳值的話。相當於我複製了乙份,因此我對我這份文件的改動都不會影響到你的那份。假設你對這句話了解的話,那麼就簡單了。以下看乙個小demo。static void main string args static void method int i 傳址...

C out和ref 引數修飾符

引數修飾符 無引數修飾符 如果乙個引數沒有任何引數修飾符修飾,那麼認為它是值傳遞,意味著方法內部收到的是實參資料的副本 out 輸出引數由方法內部進行賦值,引用傳遞 如果方法內部沒有給被out修飾的輸出引數賦值,就會出現編譯報錯。out最大的用途就是只呼叫一次方法便會產生多個返回值。c 7.0中實現...

c 引數修飾符 out

out關鍵字通過引用傳遞引數。方法定義和呼叫方法必須顯式使用out關鍵字 呼叫方法時引數不必初始化,方法內必須對其賦值 引數中可以宣告多個out修飾的引數。例 public void useout out intnum public void index 將上述 改為 public void use...