这可能听起来像一个简单的问题,但我从未使用||
运算符来检查NULL
的其他可能值。 C#如何响应:
if (a == "Hello" || a == null)
与
if (a== null || a == "Hello")
答案 0 :(得分:3)
它可以有所作为。
布尔运算符短路。如果布尔表达式的第一部分可以确定整个表达式的结果,那么它将停在那里。对于问题中的确切样本,这一点非常重要,但想象你有这个:
if (a.property == "hello" || a == null)
如果a
为null
,则会引发异常。这不会:
if (a == null || a.property == "hello")
您还可以使用null-conditional和null-coalescing运算符:
if (a ?? "hello" == "hello")
或
if (a?.property ?? "hello" == "hello")
答案 1 :(得分:-2)
C#如何响应?
C#
如何回应没有区别,所以秩序很重要。
在这种情况下,表达式从左到右进行评估。 因此,在这种情况下,第二个是正确且最安全的选择。
if (a== null || a == "Hello") //check for null first