有时,必须检查一个值是否与常量相等。在这种情况下,我总是看到这样的代码:
if (!string.IsNullOrEmpty(text))
{
if (text == "Some text here")¹
{
// Do something here.
}
}
就我而言,我宁愿写:
if ("Some text here".Equals(text))
{
// Do something here.
}
毕竟,如果text
是null
,Equals
将返回false
,这是意料之中的。常量和变量的反转感觉很奇怪,但是对于初学者来说还是可以理解的,并且避免了NullReferenceException
which 会被抛出text.Equals("Some text here")
。
我错过了什么吗?
为什么我看到的所有源代码都使用第一个示例中的语法,而从不使用第二个示例中的语法?
¹ 在实际代码中,它宁愿是常量或只读字段。为了缩短示例,我将字符串内联。