1

这对我来说似乎很奇怪Dictionary.Item()方法抛出 KeyNotFoundException 而IDictionary.Item()没有。Dictionary 实现了这个接口。那么为什么会有这样的实现,我的形象打破了界面约定?

(此外,我在 Dictionary 背后的想法的符号类型结构似乎具有该方法不应抛出异常的约定。)

4

1 回答 1

2

IDictionary不是通用的,例如 aHashTable实现了它。所以 aHashTable的键和它的值是对象,因此如果找不到键,它可以(并且确实)返回。nullAIDictioanary<TKey, TValue>的值可以是值类型,因此它没有null可以返回的“错误”值。

于 2014-10-25T14:02:22.443 回答