Nur eine unnötige Null-Überprüfung in KeyedCollection.Contains (TKey) gefunden.Unnötige Null-Überprüfung in KeyedCollection <TKey, TItem> .Contains (TKey)
Schätzen Sie, es ist nur eine sehr kleine Optimierung, aber sollte nicht gedacht, dass diese Art von Ineffizienz von einem automatisierten Code-Analyse-Tool aufgenommen werden?
Hier ist der 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 forums oder?
auch wird es Zweig sein, der auf modernen CPUs unglaublich gut vorhergesagt wird, so dass es in Wirklichkeit tatsächlich fast keinen Unterschied machen wird, selbst wenn es nicht weggeschmissen wird .. – ShuggyCoUk
Wenn JIT'd entfernt werden kann, sollte dann auch kein Codeanalyse-Tool es aufnehmen können? – si618
Ja, wahrscheinlich ... was ist dein Standpunkt? –