文章出處
文章列表
值參數:
使用值參數,通過復制實參的值到形參的方式,把數據傳遞到方法,方法被調用的時候,系統做如下操作:
在棧中為形參分配空間;
復制實參到形參。
注意:一個值參數的實參不一定是變量,它可以是任何能夠計算成相應數據類型的表達式。
在把變量用作實參之前,變量必須被賦值(除非是輸出參數,這個稍后介紹),對于引用類型,變量可以設置成實際引用或者Null。
引用參數:
- 使用引用參數時,必須在方法的申明和調用中都使用關鍵字ref修飾符。
- 實參必須是變量,在用作實參前必須被賦值。如果是引用類型的變量,可以賦值為一個引用或者null值。
注意:對于值參數,系統在棧上為形參分配內存,相反對于引用參數:
形參的參數名,看起來就好象是實參變量的別名,也就是說,他們指向的是相同的內存位置。
由于形參名和實參名的行為,就好象指向相同的內存位置,所以在方法的執行過程中,對形參作的任何改變,在方法完成后依然有效(表現在實參變量上)。
注意:在方法的聲明和調用上都使用關鍵字ref.
輸出參數
輸出參數用于從方法體內,把數據傳出到調用代碼,他們非常類似引用參數,輸出參數的要求如下:
必須在聲明和調用中都使用修飾符。輸出參數的修飾符是out而不是ref.
和引用參數類似,實參必須是變量,而不能是其他類型的表達式。這也是有道理的,因為方法需要內存位置來保存返回值。
就像引用參數,輸出參數的形參擔當實參的別名。方法內對形參的任何改變,在方法執行完成后,通過實參變量都是可見的。
不同的是,輸出參數的要求是:
在方法內部,輸出參數在被讀取之前必須被賦值。這意味著,參數的初始值是無關的,而且沒有必要在方法調用之前為實參賦值;
在方法返回之前,方法內部的任何貫穿路徑的可能路徑,都必須為所有輸出參數進行一次賦值。
文章列表
全站熱搜