在c#中,陈述条件的顺序的执行速度是否有差异?
if (null != variable) ... if (variable != null) ...
从最近开始,我经常看到第一个,自从习惯了第二个以来,它引起了我的注意。
如果没有区别,第一个的优势是什么?
这是从C保留下来的。在C中,如果您使用错误的编译器或没有将警告调得足够高,那么它将在没有警告的情况下进行编译(实际上是合法代码):
// Probably wrong if (x = 5)
当你实际上可能意味着
if (x == 5)
您可以通过以下方法在C中解决此问题:
if (5 == x)
此处输入错误将导致代码无效。
现在,在C#中,这简直就是难题。除非您要比较两个布尔值(IME很少见),否则您可以编写更具可读性的代码,因为“ if”语句需要以布尔表达式开头,并且“ x=5” 的类型为Int32,不是Boolean。
x=5
Int32
Boolean
我建议,如果您在同事的代码中看到了这一点,请以现代语言的方式对其进行教育,并建议他们将来编写更自然的形式。