Frage

habe gerade eine unnötige NULL-Prüfung in KeyedCollection.Contains (TKey).

Schätzen Sie es ist nur eine sehr kleine Optimierung, soll aber durch ein automatisiertes Code-Analyse-Tool nicht gedacht werden, diese Art von Ineffizienz aufgenommen?

Hier ist die C # durch den Reflektor erzeugt:

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

Auch was ist der beste Weg, einen Patch zu senden? ;-) Durch die .net Foren oder?

War es hilfreich?

Lösung

Dies wird wahrscheinlich ohnehin durch den JIT optimiert werden, so dass Sie nicht wirklich brauchen, um es zu sorgen. Wie dem auch sei, die Kosten für eine Null-Check ist nahe Null.

Um einen Fehler zu melden, können Sie die Microsoft Connect-Website verwenden. Aber ich glaube nicht, dass sie es beheben ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top