Есть ли способ обнаружить этот фрагмент кода?Как определить нулевые сравнения с типами, не допускающими nullable
DateTime dt = DateTime.Now;
if (dt == null) {
MessageBox.Show("Imposible with datetime!!!");
}
В нашем проекте мы обнаружили, что в компиляции Release, все, если получает удалены, так как сравнение между DateTime и нуль всегда будет ложным. Я полагаю, оптимизатор переводит его как:
if (false) {
...
}
Есть ли способ заставить анализатор обнаружить этот код каким-либо образом? Ошибка во время компиляции тоже будет прекрасна, даже если нам нужно создать правило FXCop, но мы не знаем, как отслеживать этот случай.
DateTime dt = null; // This code raises a compile time error, but the comparison with null is fine?
Если вы открыты для решения этого через другой IDE, IntelliJ должны иметь такую проверку в наличии (среди многих других статических проверок). – dasblinkenlight
Вы не получаете предупреждение компилятора? –
Нет, я уверен. Попробуй. –