我确定这个问题以前可能已经回答过,所以我很抱歉,但我无法找到合适的搜索词来找到答案。
给定以下代码示例,db.GetRecords().Any()
是否被执行?
string s = "Z";
bool x = s.IndexOfAny(new[] { 'A', 'B' }) > 0 &&
db.GetRecords().Any();
最佳答案
没有。 &&
和 ||
均由 short-circuit evaluation 求值.这意味着如果 a
为假且 a || 则
返回真,并且在这两种情况下都不会计算 a && b
返回 false如果 a
为真,bb
。
如果出于某种原因您不想进行短路评估,您可以使用按位运算符 &
和 |
。
关于c# - 如果第一个为假,编译器是否会继续计算一个表达式,其中所有表达式都必须为真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3997612/