Посмотрите, что делает 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)», который недоступен. Я должен сделать вывод, что это шаблон с достаточно большими преимуществами, чтобы оправдать это.

Каковы эти преимущества?

Ответы на вопрос(2)

Ваш ответ на вопрос