null == x和x == null之间的区别?

时间:2011-08-10 15:17:36

标签: c#

  

可能重复:
  What is the difference between these (bCondition == NULL) and (NULL==bCondition)?

我看到两种方式都进行了比较。是否有性能差异或只是个人偏好?

我看到它在这个答案中使用了:

What are your favorite extension methods for C#? (codeplex.com/extensionoverflow)

5 个答案:

答案 0 :(得分:23)

在这种情况下,它在C#中的个人偏好。

enter image description here

尤达条件

答案 1 :(得分:14)

这是C ++时代的一个雏形,你可以通过使用=而不是==来意外地分配变量,它仍然会通过编译器,因为你几乎可以将任何东西传递给C ++中的比较。 不要在C#中使用它,因为它不允许你这样做。

有效的C ++:

if (p = NULL) // p gets assigned NULL and result is compared to 0

C#无效:

if (p = null) // can only use booleans in test

答案 2 :(得分:5)

使用null == x可防止意外错误输入并错过一个等于符号,从而分配而不是测试值。最终会得到null = x无法编译的内容。

无论如何,使用Object.ReferenceEquals(x, null)可能会更好,因为它可以防止==已经过载的情况。

答案 3 :(得分:1)

各个方面都完全相同。只是反过来做同样的事情。

答案 4 :(得分:1)

  

是否存在性能差异或仅仅是个人偏好?

不,绝对没有性能差异。这只是个人偏好的问题。