比如说我创造了一只鸭子
Duck myDuck = DuckFactory.CreateDuck();
在过去,我总是检查myDuck是否为空
if (myDuck == null) { // Do stuff }
我最近查看了一些首先检查null的代码.
if (null == myDuck) { // Do stuff }
在我看来,这些是相同的,但这两者之间有什么不同吗?一个人对另一个人有任何表现上的好处吗?是否有建议的最佳做法来检查对象是否为空?
第二个源于C/C++(和其他地方),这是一个有效的结构
if (myDuck = null) { }
这在C#中无效(除非你的表达式解析为布尔值).例如,这是有效的C#
bool b = ... if (b = true) { }
当你想要比较时,将常数放在第一位是防御性的,以阻止意外分配.我会说更多的人把变量放在左边,但是将常量放到左边也没有错.
只需选择一个并保持一致.