KeyedCollection< TKey、TItem> .Contains(TKey)での不要なnullチェック

StackOverflow https://stackoverflow.com/questions/1204798

  •  05-07-2019
  •  | 
  •  

質問

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サイトを使用できます。しかし、彼らはそれを修正するとは思わない...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top