要向dotnet Hashtable添加新值,我总是使用:
myHashtable.Add(myNewKey, myNewValue);
但我只是遇到了一些代码,它们执行以下操作:
myHashTable[myNewKey] = myNewValue;
这两种方法有什么区别吗?
为了纠正Sergej的答案......
Add
如果密钥已存在,确实会抛出异常.
使用索引器作为setter 不会抛出异常(除非指定null键).
如果密钥不存在并且您使用的是泛型,则使用索引器作为getter将抛出异常IDictionary
.在非泛型IDictionary
实现(例如Hashtable
)中,您将获得空引用.你不能使用任何一个空键 - 你会得到一个ArgumentNullException
.