KeyedCollection中不必要的空检查<tkey,titem =“”>。包含(TKey)</tkey,>

时间:2009-07-30 06:31:48

标签: .net .net-bcl

刚刚在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 forums或?

1 个答案:

答案 0 :(得分:2)

无论如何,这可能会被JIT优化,所以你真的不需要担心它。无论如何,空检查的成本接近于零。

要报告错误,您可以使用Microsoft Connect网站。但我不认为他们会解决它......