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

Xai*_*oft 3 c#

可能重复:
这些(bCondition == NULL)和(NULL == bCondition)有什么区别?

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

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

你最喜欢的C#扩展方法是什么?(codeplex.com/extensionoverflow)

Dan*_*ite 23

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

在此输入图像描述

尤达条件

  • +1主要用于我的头像!:P (2认同)

Gro*_*ozz 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


ian*_*lly 5

使用null == x 可防止意外错误输入并错过一个等于符号,从而分配而不是测试值.你最终null = x将无法编译.

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