KeyedCollection< TKey、TItem> .Contains(TKey)での不要なnullチェック
質問
KeyedCollection.Contains(TKey)で不要なnullチェックが見つかりました。
非常に小さな最適化にすぎないことを理解してください。しかし、この種の非効率性は自動化されたコード分析ツールによって取り上げられると考えるべきではありませんか?
リフレクターによって生成される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によって最適化されるので、心配する必要はありません。とにかく、nullチェックのコストはほぼゼロです。
バグを報告するには、Microsoft Connect Webサイトを使用できます。しかし、彼らはそれを修正するとは思わない...
所属していません StackOverflow