關於C 中ref與out引數的理解

2021-05-22 23:02:27 字數 1002 閱讀 2301

/*ref與out引數的使用*/

using system;

using system.collections.generic;

using system.linq;

using system.text;

//如果乙個方法採用 ref 或 out 引數,而另乙個方法不採用這兩類引數,則可以進行過載,如下所示

class refoutoverloadexample

public void samplemethod(out int i)

", i);}}

class refoverloadexample

!", i);

}public void samplemethod(ref int i)

", i);}}

class program

!", num);

console.readline();

//refoverloadexample類方法的呼叫

refoverloadexample r = new refoverloadexample();

過載方法samplemethod(int i)

r.samplemethod(200);

//過載方法samplemethod(ref int i)

int numm = 500;

r.samplemethod(ref numm);

console.writeline("第二次的值為:!", numm);

console.readline();}}

}總結:本人認為,ref與out其實都是表示位址傳遞,與值傳遞有著本質的區別。ref和out引數的根本區別在於,在呼叫方法中,out引數一定要求對引數重新賦值,而ref則可以不用對引數重新賦值(當然也可以重新賦值),還有就是對於重新賦值ref和out方法的過載,當類中定義兩個方法中,有乙個有out引數,另乙個有ref的引數,則不能執行方法過載,但如果只有乙個out或是ref時,則可以執行過載。以上是本人的一點認識,希望大家指正。

C 中的 Out 和 Ref 引數

out和ref引數 經常用來通過方法傳遞引數來獲取值,當您的方法不只有乙個返回值的時候,這兩個引數就發揮作用了。ref是傳遞引數的位址,out是返回值,兩者有一定的相同之處,不過也有不同點。在這篇文章裡,我將解釋如何在c 應用中使用這兩個引數。1 out 引數 out方法引數關鍵字使方法引用傳遞到方...

關於C 中的ref和out引數的說明

看下面的例子 using system class test static void swap int x,int y static void main j i,j swap i,j console.writeline i j i,j 程式經編譯後執行輸出 i 2,j 1 i 2,j 1 這是csd...

102 20 關於C 中Ref與Out的理解

1.定義方法 private static void getsum ref int a 2.呼叫 int a 0 呼叫時,必須使用已經賦值過的變數 getsum ref a console.writeline a.tostring 1.定義方法 private static void getsumo...