C 方法引數傳遞 同時使用ref和out關鍵字

2021-08-25 13:06:27 字數 1232 閱讀 7578

在方法引數傳遞中,可以同時使用ref和out關鍵字,但是要注意ref和out引數傳遞的不同。

using system;

class program

,調整後的分數為,加平時表現分後",

score, refscore, outscore);

console.readkey();

}private void changescore(int score, ref int refscore, out int outscore)

if (refscore > 60)}}

以上**編譯時會出現兩個錯誤,我們只宣告了變數refscore,並沒有給變數顯示賦值。所以出現第乙個錯誤:使用了未賦值的區域性變數「refscore」。out關鍵字傳遞引數時,必須被呼叫方法內修改引數,用if語句判斷,只有符合條件的out引數賦值,不符合條件的out引數沒有賦值,所以出現了「控制離開方法之前必須對out引數outscore賦值」錯誤。

using system;

class program

,調整後的分數為,加平時表現分後",

score, refscore, outscore);

console.readkey();

}private void changescore(int score, ref int refscore, out int outscore)

if (refscore > 60)

else}}

以下內容供參考:

一、值引數與引用引數及輸出引數的區別:

1、值引數中實參的值不隨形參值變更而變更;

形參與實參值互不影響,實參傳遞給形參時,棧中就為其分配另外一部分空間。這樣,兩個引數變更時而互不影響。

2、引用引數及輸出引數中實參的值會隨形參值變更而變更;

(形參:在定義函式中指定的形參,在未出現函式呼叫時,它們並不佔記憶體中的儲存單元。只有在發生函式呼叫時,函式中形參才被分配記憶體單元。在呼叫結束後,形參所佔的記憶體單元也被釋放。呼叫時將實參的值賦紿形參);

引用引數與輸出引數中,實參在棧中分配空間。當實參傳遞給形參時,會將位址傳遞給形參,即傳送的指標,這樣形參變更時,實參也會隨著變更。

二、引用引數與輸出引數區別:

1、使用ref與out引數時,方法中引數及呼叫引數都需要加ref或out關鍵字。

2、使用ref引數與out引數得到的結果是一樣的,區別是:ref在呼叫前需給呼叫方法中的引數賦初值。out在呼叫前不需給呼叫方法中的引數賦初值,引數在實際方法體中初始化。

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...

C 方法引數傳遞 同時使用ref和out關鍵字

在方法引數傳遞中,可以同時使用ref和out關鍵字,但是要注意ref和out引數傳遞的不同。using system class program 調整後的分數為,加平時表現分後 score,refscore,outscore console.readkey private void changesc...