反射告诉我,排序列表使用ThrowHelper类,而不是抛出异常直接丢给他们,例如:为什么SortedList实现使用ThrowHelper而不是直接抛出?
public TValue this[TKey key]
{
get
{
int index = this.IndexOfKey(key);
if (index >= 0)
return this.values[index];
ThrowHelper.ThrowKeyNotFoundException();
return default(TValue);
}
其中ThrowKeyNotFoundException什么都不做的不仅仅是:
throw new KeyNotFoundException();
注意如何,这需要一个duff语句“return default(TValue)”,这是无法访问的。我必须得出这样的结论:这种模式的好处足以证明这一点。
这些好处是什么?
你看了看实际的微软代码,而不是它编译到什么? – 2009-02-18 19:31:01