Ненужная проверка нуля в KeyedCollection <TKey, TItem> .Contains (TKey) - PullRequest
1 голос
/ 30 июля 2009

Только что нашел ненужную проверку нуля в KeyedCollection.Contains (TKey).

Оцените, что это всего лишь очень небольшая оптимизация, но не следует ли подумать, что подобного рода неэффективность будет обнаружена инструментом автоматического анализа кода?

Вот C #, сгенерированный отражателем:

public bool Contains(TKey key)
{
    if (key == null)
    {
        ThrowHelper.ThrowArgumentNullException(ExceptionArgument.key);
    }
    if (this.dict != null)
    {
        return this.dict.ContainsKey(key);
    }
    if (key != null) // Not needed as key cannot be null
    {
        foreach (TItem local in base.Items)
        {
            if (this.comparer.Equals(this.GetKeyForItem(local), key))
            {
                return true;
            }
        }
    }
    return false;
}

Кроме того, каков наилучший способ отправки патча? ;-) Через .net форумы или?

1 Ответ

2 голосов
/ 30 июля 2009

Это, вероятно, все равно будет оптимизировано JIT, так что вам не нужно беспокоиться об этом. В любом случае, стоимость нулевой проверки близка к нулю.

Чтобы сообщить об ошибке, вы можете использовать веб-сайт Microsoft Connect. Но я не думаю, что они это исправят ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...