以下代码是不错的风格。我们是否可以假设如果对象为空则不会执行第二个谓词?
if(someObject == null || someObject.Count == 0)
{
//do something
}
答案 0 :(得分:6)
是。 ||
被称为短路运算符,意味着如果它知道足够返回true(它的第一个操作数为真)那么它将不会计算第二个操作数并立即返回true。
&&
是相似的 - 如果它的第一个操作数返回false,它会立即返回false而不检查第二个。
答案 1 :(得分:4)
正确。如果左表达式求值为true
,则右表达式将不会计算。如果要确保评估两者,可以使用按位或运算符|
:
if(someObject == null | someObject.Count == 0)
{
//do something
}
小心这一点,你可能并不总是得到你期望的。
答案 2 :(得分:3)
是。 C#短路中的||
运算符。如果未满足第一个条件,则不会执行下一个条件。