6 .net
有什么区别
if(null==object)
Run Code Online (Sandbox Code Playgroud)
和
if(object==null)
Run Code Online (Sandbox Code Playgroud)
请使用上述优点.
小智 6
在过去的好时光,编译器很乐意让你在条件内进行任务,导致无意的错误:
if(a = false)
{
// I'll never execute
}
if(b = null)
{
// I'll never execute
}
b.Method(); // And now I'm null!
Run Code Online (Sandbox Code Playgroud)
因此,一些聪明的开发人员开始将他们的常量放在他们的条件中:
if(false = a) // OOPS! Compiler error
{
// ..
}
if(null = b) // OOPS! Compiler error
{
// ..
}
Run Code Online (Sandbox Code Playgroud)
所以他们训练自己避免了一整类错误.大多数现代编译器将不再让你犯这个错误,但这种做法仍在继续.
始终将常量放在第一位还有另一个好处:
if(myString != null && myString.Equals("OtherString"))
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
can(在.NET,Java和大多数具有基于对象的字符串类型的语言)被简化为:
if("OtherString".Equals(myString))
{
// ..
}
Run Code Online (Sandbox Code Playgroud)