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