要向dotnet Hashtable添加新值,我一直使用:
myHashtable.Add(myNewKey, myNewValue);
但我刚刚遇到一些代码,它们执行以下操作:
myHashTable[myNewKey] = myNewValue;
这两种方法有什么区别吗?
答案 0 :(得分:14)
稍微纠正Sergej的回答......
Add
确实会抛出异常。IDictionary<TKey,TValue>
,则使用索引器作为getter将抛出异常。在非通用IDictionary
实现中(例如Hashtable
),您将获得空引用。您不能使用任何一个空键 - 您将获得ArgumentNullException
。答案 1 :(得分:3)
如果已经存在具有给定键的项目,则第一个将抛出异常,如果没有具有此类键的项目,则第二个将抛出异常
答案 2 :(得分:0)
不同之处在于处理重复值。
myHashtable.Add()如果HashTable已经包含带有您键的元素,则抛出ArgumentException。 myHashTable [myNewKey] 将旧值替换为新值。