불필요한 널 체크인 keyedcollection .crantains (tkey)
문제
방금 KeyEdCollection.contains (tkey)에서 불필요한 널 체크인을 발견했습니다.
매우 작은 최적화 일뿐 만 아니라 자동화 된 코드 분석 도구에 의해 이런 종류의 비 효율성을 선택해야한다고 생각해서는 안됩니까?
반사기에 의해 생성 된 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에 의해 최적화 될 것이므로 걱정할 필요는 없습니다. 어쨌든, 널 점검 비용은 0에 가깝습니다.
버그를보고하려면 Microsoft Connect 웹 사이트를 사용할 수 있습니다. 하지만 나는 그들이 고칠 것이라고 생각하지 않습니다 ...
제휴하지 않습니다 StackOverflow