文章出處

值參數:

使用值參數,通過復制實參的值到形參的方式,把數據傳遞到方法,方法被調用的時候,系統做如下操作:

在棧中為形參分配空間;

復制實參到形參。

注意:一個值參數的實參不一定是變量,它可以是任何能夠計算成相應數據類型的表達式。

在把變量用作實參之前,變量必須被賦值(除非是輸出參數,這個稍后介紹),對于引用類型,變量可以設置成實際引用或者Null。

 

引用參數:

  • 使用引用參數時,必須在方法的申明和調用中都使用關鍵字ref修飾符。
  • 實參必須是變量,在用作實參前必須被賦值。如果是引用類型的變量,可以賦值為一個引用或者null值。

 

注意:對于值參數,系統在棧上為形參分配內存,相反對于引用參數:

形參的參數名,看起來就好象是實參變量的別名,也就是說,他們指向的是相同的內存位置。

由于形參名和實參名的行為,就好象指向相同的內存位置,所以在方法的執行過程中,對形參作的任何改變,在方法完成后依然有效(表現在實參變量上)。

注意:在方法的聲明和調用上都使用關鍵字ref.

 

 

輸出參數

輸出參數用于從方法體內,把數據傳出到調用代碼,他們非常類似引用參數,輸出參數的要求如下:

必須在聲明和調用中都使用修飾符。輸出參數的修飾符是out而不是ref.

和引用參數類似,實參必須是變量,而不能是其他類型的表達式。這也是有道理的,因為方法需要內存位置來保存返回值。

就像引用參數,輸出參數的形參擔當實參的別名。方法內對形參的任何改變,在方法執行完成后,通過實參變量都是可見的。

不同的是,輸出參數的要求是:

在方法內部,輸出參數在被讀取之前必須被賦值。這意味著,參數的初始值是無關的,而且沒有必要在方法調用之前為實參賦值;

在方法返回之前,方法內部的任何貫穿路徑的可能路徑,都必須為所有輸出參數進行一次賦值。

 

 

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()