自己先心裡猜猜param1、param2、list count是什麼值, 按照邏輯思維想既然是引用類型那麼輸出結果應該為:param1:200、param2:"hello"、list count :2; 實際上並不是我們邏輯思維的那樣,因為string類型比較特殊(MSDN上這樣解釋:字元串對象是不 ...
private string FuncWithParameters(int param1, String param2, List<string> param3) { // 我們在這裡改變參數值 param1 = 100; param2 = "hello"; param3.Add("sfs"); return "thank you for reading me"; } public void Test() { int intValue = 200; String strParam = "hi"; List<string> list = new List<string>(); list.Add("Item1"); FuncWithParameters(intValue, strParam, list); Console.WriteLine("param1: " + intValue); Console.WriteLine("param2: " + strParam); Console.WriteLine("list count: " + list.Count); Console.ReadLine(); }
自己先心裡猜猜param1、param2、list count是什麼值, 按照邏輯思維想既然是引用類型那麼輸出結果應該為:param1:200、param2:"hello"、list count :2;
實際上並不是我們邏輯思維的那樣,因為string類型比較特殊(MSDN上這樣解釋:字元串對象是不可變的,即它們一旦創建就無法更改。對字元串進行操作的方法實際上返回的是新的字元串對象。) ,也可以看下其他園子里的詳細解釋:C# string 特殊的引用類型
正確的結果為:param1:200、param2:"hi"、list count :2。
廣告插播歡迎同行加入企鵝群:662685831