可能重复:
What is the difference between these (bCondition == NULL) and (NULL==bCondition)?
我看到两种方式都进行了比较。是否有性能差异或只是个人偏好?
我看到它在这个答案中使用了:
What are your favorite extension methods for C#? (codeplex.com/extensionoverflow)
答案 0 :(得分:23)
在这种情况下,它在C#中的个人偏好。
尤达条件
答案 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)
是否存在性能差异或仅仅是个人偏好?
不,绝对没有性能差异。这只是个人偏好的问题。