c#中的空检查方法

nbu*_*ell 0 c# null

可能重复:
为什么在C#中经常会看到"null!= variable"而不是"variable!= null"?

通过以下方式检查null是否有任何区别:

object x;
// more code to work on x
if (null == x)
   return;
Run Code Online (Sandbox Code Playgroud)

object x;    
// more code to work on x
if (x == null)
   return;
Run Code Online (Sandbox Code Playgroud)

我认为它只是一种风格偏好,并且没有任何错误(代码逻辑或性能),但想要检查.我认为后者更容易阅读,但我的同事坚持以第一种方式编写它.它让我疯了.谢谢.

Mic*_*tum 5

我认为它只是一种风格偏好

它来自C/C++世界,显然这个错误很常见:

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

因此,它不是比较,而是一个引入潜在微妙错误的任务.这就是他们使用的原因

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

这会抛出编译器错误.

在C#中,两者都是非法的,所以

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

似乎是常见的形式.