一尘不染

为什么在C#中经常看到“ null!=变量”而不是“ variable!= null”?

c#

在c#中,陈述条件的顺序的执行速度是否有差异?

if (null != variable) ...
if (variable != null) ...

从最近开始,我经常看到第一个,自从习惯了第二个以来,它引起了我的注意。

如果没有区别,第一个的优势是什么?


阅读 442

收藏
2020-05-19

共1个答案

一尘不染

这是从C保留下来的。在C中,如果您使用错误的编译器或没有将警告调得足够高,那么它将在没有警告的情况下进行编译(实际上是合法代码):

// Probably wrong
if (x = 5)

当你实际上可能意味着

if (x == 5)

您可以通过以下方法在C中解决此问题:

if (5 == x)

此处输入错误将导致代码无效。

现在,在C#中,这简直就是难题。除非您要比较两个布尔值(IME很少见),否则您可以编写更具可读性的代码,因为“ if”语句需要以布尔表达式开头,并且“
x=5” 的类型为Int32,不是Boolean

我建议,如果您在同事的代码中看到了这一点,请以现代语言的方式对其进行教育,并建议他们将来编写更自然的形式。

2020-05-19