先來看一下百度百科是怎樣說的:
傳值調用是指方法在調用參數時,不是對原參數進行操作,而是創建參數的拷貝並對進行操作,這種調用有利於保護數據
傳引用調用是指傳遞一個地址的拷貝。
在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會看起來像一個傳值的調用(在方法中修改不影響原先的變量)