我知道这是一个愚蠢的问题,但这两个语句之间有什么区别?
if( null == this.someVariable)
{
//do something
}
and
if( this.someVariable == null )
{
//do something.
}
if( null == this.someVariable)
{
//do something
}
and
if( this.someVariable == null )
{
//do something.
}
从代码角度来看,它们是相同的。有些人更喜欢第一种风格,因为如果你犯了错误并且输入=
而不是==
,你会得到一个错误提示。
完全没有任何区别,除非你更喜欢哪一个。
这是来自C/C++世界的遗留问题:
if(null = someVariable)
{
}
会报错,但是:
if(someVariable = null)
{
}
null == x
的原因。如果你错过了其中一个 =
, 它就会变成一个错误。 - ssube两个if语句对于你的示例得出相同的结果。
更相关的示例是这样的:
string text = null;
if(text.Equals("something"))
{
}
string text = null;
if("something".Equals(text))
{
}
"something"
始终有效,并且任何可比较的项目都可以正常工作,因为源对象是有效的。Equals
方法。相反,应该使用静态的object.Equals
方法(或者使用等号运算符,因为问题就不存在了)。 - Servy