我看到一些开发人员在C#中使用以下空对象检查:
if (null == myObject)
{
}
Run Code Online (Sandbox Code Playgroud)
而不是:
if (myObject == null)
{
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢第二个陈述,因为它从左到右自然地(对我而言).
有没有理由说明为什么使用第一个?有任何性能优势,还是纯粹的味道?
TJH*_*vel 11
有些人(主要是C开发人员)更喜欢第一种方式,因为如果你忘记了一个=符号代码就不会在C中编译.
例如,当我忘记一个=;
int a = 0;
if(a=1) //Accidental assignment, luckily the C# compiler warns us for this. The C compiler wouldnt.
{
}
if(1=a) // This is not logical, and not valid in either C# or C.
{
}
Run Code Online (Sandbox Code Playgroud)
然而,正如Jamietre指出的那样,与C语言无关,它在C#中无效地隐式地将int转换为布尔值.编译器仍然会产生错误.然而,当你比较布尔值时它会起作用:if(a == true).然而,这本身就很奇怪,因为你可以(并且在我看来应该)省略== true.
| 归档时间: |
|
| 查看次数: |
1127 次 |
| 最近记录: |