jjzjj

ThrowHelper

全部标签

c# - 为什么SortedList实现使用ThrowHelper而不是直接抛出?

Reflector告诉我SortedList使用了一个ThrowHelper类来抛出异常,而不是直接抛出异常,例如:publicTValuethis[TKeykey]{get{intindex=this.IndexOfKey(key);if(index>=0)returnthis.values[index];ThrowHelper.ThrowKeyNotFoundException();returndefault(TValue);}ThrowKeyNotFoundException只做以下事情:thrownewKeyNotFoundException();请注意,这需要一个无法访问的d

c# - 什么时候应该使用 ThrowHelper 方法而不是直接抛出?

什么时候使用ThrowHelper方法而不是直接抛出是合适的?voidMyMethod(){...//thrownewArgumentNullException("paramName");ThrowArgumentNullException("paramName");...}voidThrowArgumentNullException(stringparamName){thrownewArgumentNullException(paramName);}我读到调用ThrowHelper方法(唯一目的是抛出异常的方法)而不是直接抛出应该产生更小的字节码。这和明显的封装(另一层间接)可能是不