在条件的两边检查null是否有所不同?

Joe*_*Joe 3 c# oop

我见过两者

if(something == null)
Run Code Online (Sandbox Code Playgroud)

if(null == something)
Run Code Online (Sandbox Code Playgroud)

这个空检查发生的顺序是否有所不同?我没有看到功能上的差异,但很想知道它背后是否有推理.

Jes*_*cer 7

这在C#中是合法的,并且通俗地称为尤达条件.很多人在C/C++的世界是这样,因为它守卫对更换编译时===意外.但是,由于编译器会将它(单个=)标记为该实例中的错误(只要它不是booleaneval),它在C#中已经失宠了.


pad*_*ddy 5

一些程序员喜欢将常量放在相等运算符的左侧以避免事故(=而不是拼写错误==).在第二个例子中,输入=拼写错误会引入编译器错误,这很容易修复,而在第一个例子中,这样的拼写错误可能会引入一个很难找到的错误.

这种做法直接来自C和C++编程风格.我不知道它是否会影响C#.如果它不再相关,那么它更可能是一种习惯而不是一种策略.