【发布时间】:2010-04-27 05:33:48
【问题描述】:
我想要的只是一本字典,它告诉我找不到哪个键,而不仅仅是说The given key was not present in the dictionary。
我曾短暂考虑过用override new this[TKey key] 做一个子类,但觉得它有点笨拙,所以我已经实现了 IDictionary 接口,并将所有内容直接传递给内部字典,唯一的附加逻辑在索引器:
public TValue this[TKey key]
{
get
{
ThrowIfKeyNotFound(key);
return _dic[key];
}
set
{
ThrowIfKeyNotFound(key);
_dic[key] = value;
}
}
private void ThrowIfKeyNotFound(TKey key)
{
if(!_dic.ContainsKey(key))
throw new ArgumentOutOfRangeException("Can't find key [" + key + "] in dictionary");
}
这是正确/唯一的方法吗?更新 this[] 真的有那么糟糕吗?
【问题讨论】:
标签: c# dictionary coding-style