c#區分傳值調用 傳引用調用。

先來看一下百度百科是怎樣說的:

傳值調用是指方法在調用參數時,不是對原參數進行操作,而是創建參數的拷貝並對進行操作,這種調用有利於保護數據

傳引用調用是指傳遞一個地址的拷貝。



在c#中(以下內容轉自:http://www.cnblogs.com/wang_yb/archive/2011/05/18/2050574.html):

如果傳遞的參數是基元類型(int,float等)或結構體(struct),那麼就是傳值調用

如果傳遞的參數是類(class)那麼就是傳引用調用

如果傳遞的參數前有ref或者out關鍵字,那麼就是傳引用調用

如果調用的函數中對參數重新進行了地址分配(new操作),那麼執行結果類似傳值調用

如果調用的函數中沒有對參數重新進行了地址分配,直接就是使用了傳遞的參數,那麼執行結果類似傳引用調用


(以下內容轉自:http://blog.csdn.net/zhushamei/article/details/7785086):

傳遞string參數時,傳遞的是引用(傳址),但方法中不可以修改它,這是因爲string設計上不能修改的,修改就會產生一個新的string,所以在用代碼作測試時,string會看起來像一個傳值的調用(在方法中修改不影響原先的變量)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章