Ненужная проверка нуля в KeyedCollection < TKey, TItem > .Contains (TKey)
Вопрос
Только что обнаружил ненужную проверку нуля в 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 форумы или? р>
Решение
Это, вероятно, все равно будет оптимизировано JIT, так что вам не нужно об этом беспокоиться. В любом случае, стоимость нулевой проверки близка к нулю.
Чтобы сообщить об ошибке, вы можете использовать веб-сайт Microsoft Connect. Но я не думаю, что они это исправят ...
Не связан с StackOverflow