天天看點

實參與形參

形參:在定義函數中指定的參數就是形參,在未出現函數調用時,他們并不占記憶體中的存儲單元,隻有在發生函數調用時,函數中的形參才被配置設定記憶體單元。在調用結束後,形參所占的記憶體單元也被釋放。

 實參:實參可以是常量、變量和表達式,但要求有确定的值。在調用時将實參的值賦給形參。在記憶體中,實參單元和形參單元是不同的單元。在調用函數時,給形參配置設定存儲單元,并将實參對應的值傳遞給形參,調用結束後,形參單元被釋放,實參單元仍保留原值。

C#中有兩種類型的資料,一種為值類型;另一種為引用類型。了解這兩種資料類型,有利于進一步程式設計和實作。

    他們最大的差別就是存儲的位置不同,前者值類型存儲在記憶體的堆棧中(一些書上面也說是【棧】),後者存儲在記憶體堆中(一些書上面說是【堆】),棧中的記憶體不需要自己就行回收,記憶體堆中的資料需要.Net FrameWork 自己的記憶體清理機制進行回收。

    值類型的資料傳遞參數的時候,預設情況下采用傳遞形參,實參的内容不變,如果想把實參傳遞過去,那麼,在C#中隻有通過ref關鍵字來實作。其實這裡面的ref和c/c++中的位址引用差不多,具體原理沒有深究,但是可以這麼了解。

    但是引用類型傳遞的時候是傳遞的記憶體的位址,也就是“傳遞實參”。是以有些時候就能夠了解一些東西了。比如:DataSet傳遞時候,就是傳遞的“實參”。他也就是引用類型。

    值類型不是很多,int float double char等。注意:string為引用類型。這個比較特殊。

繼續閱讀