这个行为叫什么?

时间:2011-03-01 23:45:25

标签: c# conditional

我有以下方法:

public override bool IsSatisfiedBy(SourceFile candidate)
        {
            Console.WriteLine("Check 1: " + One.IsSatisfiedBy(candidate));
            Console.WriteLine("Check 2: " + Two.IsSatisfiedBy(candidate));
            Console.WriteLine("Check 3: " + Three.IsSatisfiedBy(candidate));
            return One.IsSatisfiedBy(candidate) && Two.IsSatisfiedBy(candidate) && Three.IsSatisfiedBy(candidate);
        }

如果我将SourceFile作为不符合规则1的参数传递,则不会检查规则2和3。我知道这是正确的方法,但我想更多地了解确切的行为,但我找不到任何东西,因为我不知道这种行为是什么:D

5 个答案:

答案 0 :(得分:9)

它被称为short-circuit evaluation。在C#中,它适用于&&||运算符。

答案 1 :(得分:1)

它被称为布尔表达式的短路。

另请参阅:http://en.wikipedia.org/wiki/Short-circuit_evaluation

答案 2 :(得分:0)

答案 3 :(得分:0)

这称为短路评估。

&&只会在第一个条件成立时继续评估。

||的行为方式类似,如果第一部分为真,则不会评估余数。

答案 4 :(得分:0)