1.ref:ref 即refence,又叫引用,類似於c++中的&,會將值和變數一起傳入方法
2.out:主要用於函式返回多個值,在有out引數方法內,相應的值必須初始化,
不然無法通過編譯
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
, b = ", a, b);//outfun : a = 3 , b = 1
int c = 10, d = 3; reffun(ref c, ref d);
console.writeline("reffun : c = , d = ", c, d);//reffun : c = 13 , d = 1
int e = 3, f = 4;
norfun(e, f);
console.writeline("reffun : c = , d = ", e, f);//norfun : c = 3 , d = 4
console.readline(); }
private static void norfun(int a, int b)
static void outfun(out int a, out int b)
static void reffun(ref int a, ref int b) }
}
輸出結果的原因:
outfun返回的是在函式裡定義的值
reffun會把變數的位址傳到方法裡,在方法裡修改會直接改變原本變數的值
norfun是普通呼叫,方法裡修改值不會改變原本的值
不過這個感覺並沒有什麼對比性,因為out和ref雖然在編譯的時候編譯器會把之歸為一種型別,但是out更主要的用法應該是在方法內部對變數進行初始化/改變,然後傳到呼叫方法一端,達成一種反向傳值
(當然只是我個人的見解)
C out和ref 引數修飾符
引數修飾符 無引數修飾符 如果乙個引數沒有任何引數修飾符修飾,那麼認為它是值傳遞,意味著方法內部收到的是實參資料的副本 out 輸出引數由方法內部進行賦值,引用傳遞 如果方法內部沒有給被out修飾的輸出引數賦值,就會出現編譯報錯。out最大的用途就是只呼叫一次方法便會產生多個返回值。c 7.0中實現...
C Out與ref是幹什麼的?
1.最後沒有寫 return 語句的話,表示程式正常退出 2.不需要返回值時,存在return的作用 例子void main void main 3.需要返回值時存在return的作用 int main int argc 終止函式執行的一種方式。當return語句提供了乙個值時,這個值就成為函式的返...
關於C 中ref與out引數的理解
ref與out引數的使用 using system using system.collections.generic using system.linq using system.text 如果乙個方法採用 ref 或 out 引數,而另乙個方法不採用這兩類引數,則可以進行過載,如下所示 class...