關於C 中的ref和out關鍵字

2021-06-13 22:10:26 字數 1510 閱讀 2397

c#中的傳值呼叫和傳引用調動。

傳值呼叫是指在使用引數時,是把乙個值傳遞給函式使用的乙個變數。對函式中此變數的任何修改都不影響函式呼叫中指定的引數。

using system;

using system.collections.generic;

using system.linq;

using system.text;

", mynumber);

showdouble(mynumber);

console.writeline("mynumber = ", mynumber);

console.readkey();

}static void showdouble(int val)

", val);}}

}

返回結果:

傳引用呼叫,即引數帶有ref或out關鍵字。對函式中這個變數進行的任何改變都會影響用作引數的變數值。

對於帶有ref關鍵字:

using system;

using system.collections.generic;

using system.linq;

using system.text;

", mynumber);

showdouble(ref mynumber);

console.writeline("mynumber = ", mynumber);

console.readkey();

}static void showdouble(ref int val)

", val);}}

}

返回結果:

注意:

1.帶有ref的引數不能定義為「常變數」,即const int mynumber = 5;

2.帶有ref的引數必須在使用前進行初始化。

對於帶有out關鍵字:

using system;

using system.collections.generic;

using system.linq;

using system.text;

", mynumber);

console.readkey();

}static void showdouble(out int val)

", val);}}

}

返回結果:

注意:帶有out關鍵字的引數,必須看作是還未賦值,即使把已賦值的變數作為out引數時,儲存在變數中的值也會在函式執行時丟失。

ref 關鍵字out關鍵字

using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace outandref ref修飾方法的引數,在呼叫的時候必須...

C 中的ref與out關鍵字

上一次隨筆中提到有winform程式有兩個知識點挺重要點,第乙個是tryparse方法和parse方法區別,這一次來談談另乙個學習心得,就是c 中的關鍵字out與ref view code 1 using system 2using system.collections.generic 3using...

ref關鍵字 out關鍵字 區別

ref 和 out 關鍵字比較怪,他們在方法的引數中使用,今天對他們做了認真的研究 msdn上的定義 ref關鍵字使引數按引用傳遞。其效果是,當控制權傳遞 用方法時,在方法中對引數所做的任何更改都將反映在該變數中。若要使用ref引數,則方法定義和呼叫方法都必須顯式使用ref關鍵字。out關鍵字會導致...