我有一个Hashtable,我希望在Hashtable中添加密钥之前,先检查Hashtable是否有密钥。在Hashtable抛出异常中添加重复键。 基本上我想要覆盖Hashtable的虚拟“添加”方法并对其进行检查。我不知道如何覆盖Add方法。
请帮我写一下覆盖方法。
答案 0 :(得分:0)
您可以使用ContainsKey
。
另一种方法是使用Item
indexer-property添加新密钥和现有更新。
var ht = new System.Collections.Hashtable();
ht["test"] = "foo"; // added
ht["test"] = "bah"; // updated
但是,您应该考虑用通用Hashtable
替换旧的Dictionary<Tkey, Tval>
和no operator "[]" matches these operands
。 Why?
答案 1 :(得分:0)
Hashtable类的Add方法是可覆盖的。所以试试这个:
class MyHashTable : Hashtable
{
public override void Add(object key, object value)
{
try
{
base.Add(key, value);
}
catch
{
// whatever
}
}
}