Pergunta

Apenas encontrou um cheque nulo desnecessária no KeyedCollection.Contains (TKey).

Apreciar é apenas uma pequena otimização, mas não deve pensei que este tipo de ineficiência ser pego por uma ferramenta de análise de código automatizado?

Aqui está o C # gerado pelo reflector:

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;
}

Além disso, qual é a melhor forma de enviar em um patch? ;-) Através dos fóruns .net ou

Foi útil?

Solução

Este provavelmente será otimizado pelo JIT qualquer maneira, então você realmente não precisa se preocupar com isso. De qualquer forma, o custo de um cheque nulo está perto de zero.

Para relatar um erro, você pode usar o site do Microsoft Connect. Mas eu não acho que eles vão corrigi-lo ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top