一般情況,方法的引數傳遞是通過值進行傳遞的,即乙個物件作為引數傳遞給方法使用,該物件便進駐到該引數物件所在指標的記憶體空間(使用c來描述),也就是該物件在此位置程式設計客棧建立了副本,當方法執行結束時,該副本將會被銷毀;這種傳遞方式的使用佔據了日常方法傳參的絕大多數。
另一種情況是引用傳遞,它與值傳遞方式不同,物件傳遞給方法時對方法引數並沒有影響,仍然返回的是受原始引數取值影響的方法,即methodinstance(ref _refvalue)呼叫 method(ref _arg)方法,但_refvalue對method無影響,返回的仍是_arg影響的結果。這點也能想到_arg必須在使用前賦值。
示例:
另一種情況是引用傳遞,它與值傳遞方式不同,物件傳遞給方法時對方法引數並沒有影響,仍然返回的是受原始引數取值影響的方法,即methodinstance(ref _refvalue)呼叫 method(ref _arg)方法,但_refvalue對method無影響,返回的仍是_arg影響的結果。這點也能想到_arg必須在使用前賦值。
示例:
複製** **如下:
using system;
/******************************
* chapter:c#難點逐個擊破(一)
* author:王洪劍
* date:2010-1-11
* blog:
* email:[email protected]
* description:重點講解值傳遞方式與引用傳遞方式
* ***************************/
namespace wang.testref }
public class refclass }
class program }
} 執行結果:
本文標題: c#難點逐個擊破(1):ref引數傳遞
本文位址: /ruanjian/csharp/54632.html
ref和out 傳遞引數 C
1.引數傳遞預設都是傳遞棧空間裡面儲存的內容 2.如果新增了ref那麼傳遞的都是棧空間位址,而不再是棧空間裡面的內容 3.如果新增了out,那麼傳遞的也是棧空間的位址 1 寫乙個方法計算乙個int型別陣列中每個元素的總和以及最大值和最小值 2 3 4 5 6 7static void gatvalu...
C 方法引數傳遞 同時使用ref和out關鍵字
在方法引數傳遞中,可以同時使用ref和out關鍵字,但是要注意ref和out引數傳遞的不同。using system class program 調整後的分數為,加平時表現分後 score,refscore,outscore console.readkey private void changesc...
C 方法引數傳遞 同時使用ref和out關鍵字
在方法引數傳遞中,可以同時使用ref和out關鍵字,但是要注意ref和out引數傳遞的不同。using system class program 調整後的分數為,加平時表現分後 score,refscore,outscore console.readkey private void changesc...