以下代码是一个好的风格.如果对象为null,我们是否可以始终假设第二个谓词不会被执行?
if(someObject == null || someObject.Count == 0)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
是.||被称为短路运算符,意味着如果它知道足够返回true(它的第一个操作数为真)那么它将不会计算第二个操作数并立即返回true.
&& 类似 - 如果它的第一个操作数返回false,它会立即返回false而不检查第二个操作数.
正确的。如果左侧表达式计算结果为true右侧表达式,则右侧表达式将不会计算。如果您想确保两者都被评估,您可以使用按位或运算符|:
if(someObject == null | someObject.Count == 0)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
小心这一点,你可能并不总是能得到你所期望的。