如何检测与非可空变量类型的空比较

时间:2016-04-13 19:21:55

标签: c# optimization fxcop

有没有办法检测此代码段?

DateTime dt = DateTime.Now;
if (dt == null) {
    MessageBox.Show("Imposible with datetime!!!");
}

在我们的项目中,我们检测到在Release编译中,整个if被删除,因为DateTime和null之间的比较将始终为false。我假设优化器将其翻译为:

if (false) { 
    ...
}

有没有办法让分析仪以任何方式检测此代码?即使我们必须创建FXCop规则,编译时的错误也会很好,但我们不知道如何跟踪这种情况。

DateTime dt = null; // This code raises a compile time error, but the comparison with null is fine?

1 个答案:

答案 0 :(得分:0)

类似于IDE静脉,ReSharper支持捕获此类问题。它是Visual Studio的插件,多年来我们发现它非常有用。在重构功能方面,它仍领先于微软。

https://www.jetbrains.com/resharper/