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是可以的。

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