这对我来说似乎很奇怪Dictionary.Item()方法抛出 KeyNotFoundException 而IDictionary.Item()没有。Dictionary 实现了这个接口。那么为什么会有这样的实现,我的形象打破了界面约定?
(此外,我在 Dictionary 背后的想法的符号类型结构似乎具有该方法不应抛出异常的约定。)
这对我来说似乎很奇怪Dictionary.Item()方法抛出 KeyNotFoundException 而IDictionary.Item()没有。Dictionary 实现了这个接口。那么为什么会有这样的实现,我的形象打破了界面约定?
(此外,我在 Dictionary 背后的想法的符号类型结构似乎具有该方法不应抛出异常的约定。)
IDictionary
不是通用的,例如 aHashTable
实现了它。所以 aHashTable
的键和它的值是对象,因此如果找不到键,它可以(并且确实)返回。null
AIDictioanary<TKey, TValue>
的值可以是值类型,因此它没有null
可以返回的“错误”值。