在会话中存储哈希表值的问题

时间:2013-11-28 05:39:24

标签: asp.net

为什么session["anish"]包含hashTable的所有三个值,而它只应存储两个

    Hashtable ht = new Hashtable();
    ht.Add("name", "anish");
    ht.Add("agge", "20");
    Session["anish"] = ht;
    ht.Add("sex", "male");
    Session.Add("manish", ht);

1 个答案:

答案 0 :(得分:1)

这是因为Hashtable存储在内存中的Heap中,而哈希表是引用类型。因此,当你说ht.add它将添加哈希表,无论谁引用它。 所以Manish和anish都有3个值,因为它们都指的是同一个对象ht。