C# Hashtable傳值測試

測試hashtable是否有類似引用類型的傳值特性

public void Test()
         {
             Hashtable ht = new Hashtable();
             pare user = new pare();
             user.name = "pdy";
             user.age = 12;
             ht.Add("pdy", user);
             var abc = (pare)ht["pdy"];
             abc.name = "ls";
             Console.WriteLine(((pare)ht["pdy"]).name);
             changehs( ht);
             Console.WriteLine(((pare)ht["pdy"]).age);
             Console.WriteLine(((pare)ht["sc"]).name);
         }
         public void changehs( Hashtable ht)
         {
             var abc = (pare)ht["pdy"];
             abc.age = 33;
             pare user = new pare();
             user.name = "sc";
             user.age = 18;
             ht.Add("sc", user);
         }
 private class pare
         {
             public String name { get; set; }
             public int age { get; set; }
         }

輸出結果

結論

當Hashtable的對象是引用對象時,在其它方法內,或直接操作獲取到的變量都可以直接更改hashtable中的值。注意,如果是基本的值類型,是不能更改其值的。但在方法內增加kv是可以的。

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