如果评估条件,“如何”“如何”?

时间:2014-04-13 10:36:03

标签: c# if-statement

在C#中,如果我们有以下代码:

if (condition1 && condition2)

和condition1结果为false,是否仍然检查了condition2,或者只是在if语句之后继续执行?

3 个答案:

答案 0 :(得分:3)

首先评估condition1,然后评估true,然后评估condition2。如果condition2condition1,则不会评估false。这称为short-circuit评估。

答案 1 :(得分:1)

&&运营商没有短路。但是&运算符不是,如果使用它,将评估所有表达式。

答案 2 :(得分:1)

是C#对布尔表达式进行短路评估。因此

if(X&& Y())

1)X将首先执行

2)只有当X返回true时才会执行Y

这适用于所有布尔表达式,而不仅仅适用于IF语句中的那些...在MSDN在线提供的C#规范中进行检查。第14.11.1节

你也可以使用&在这种情况下,它不会是一个短期评估,因为

&安培;是用于位操作的“和”运算符。 &安培;&安培;是用于评估逻辑表达式的“和”运算符。