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)
可能更好,因为它可以防止==已经过载的情况。
各个方面都完全相同。 只是反向做同样的事情。
有性能差异还是个人偏好?
不,绝对没有性能差异。 这只是个人偏好的问题。