CodeContracts: логическое условие оценивается как постоянное значение, почему?
Я получаю это предупреждение, но не могу понять проблему ...
CodeContracts: warning: логическое условие d1.Count! = D2.Count всегда принимает постоянное значение. Если он (или его отрицание) появляется в исходном коде, возможно, у вас есть неработающий код или избыточная проверка
Код выглядит следующим образом:
public static bool DictionaryEquals<TKey, TValue>(IDictionary<TKey, TValue> d1, IDictionary<TKey, TValue> d2)
{
if (d1 == d2) return true;
if (d1 == null || d2 == null) return false;
if (d1.Count != d2.Count) return false; // <-- warning here
// Equality check goes here
return true;
}
// Equality check goes here
часть может быть как есть или замененаправильная реализация и я все еще получаю то же предупреждение.