C 難點逐個擊破(1) ref引數傳遞

2022-09-26 09:54:30 字數 978 閱讀 3916

一般情況,方法的引數傳遞是通過值進行傳遞的,即乙個物件作為引數傳遞給方法使用,該物件便進駐到該引數物件所在指標的記憶體空間(使用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...