Посмотрите, что делает ThrowHelper. Он получает ресурсы и прочее для сообщений об ошибках. В данном конкретном случае текст ошибки отсутствует, поэтому кажется, что он бесполезен, но их шаблон, вероятно, требует этого, поэтому разработчик, написавший его, следовал шаблону, как он / она.
ctor сообщает мне, что 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)», который недоступен. Я должен сделать вывод, что это шаблон с достаточно большими преимуществами, чтобы оправдать это.
Каковы эти преимущества?