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

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

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

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

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

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

在此处输入图像描述

尤达条件

这是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

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

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

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

有性能差异还是个人偏好?

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