表达式1&&表达式2&&表达式3
表达式1为true
表达式2为false
表达式3为true
最后的结果为什么就变成了true了呢?百思不得其解啊

解决方案 »

  1.   

    应该是你看错了吧,应该是false,
      

  2.   

    那就说明这3个表达试都是true,去思考下为什么都是true了,而不是在想&&的问题
      

  3.   

    对表达式求值本身会不会改变表达式的值?比如:
    bool ShareBooleanVar = false;
    Func<bool> f1 = () => ShareBooleanVar = !ShareBooleanVar;
    Func<bool> f2 = () => !(ShareBooleanVar = !ShareBooleanVar);
    Func<bool> f3 = () => ShareBooleanVar = true;
    Console.WriteLine((f1() && f2() && f3()));
    Console.WriteLine((f1() && f2() && f3()));
    Console.WriteLine((f1() && f2() && f3()));
    输出
    True
    False
    True
      

  4.   

    可能是其他地方的问题吧,按逻辑的话应该是false
      

  5.   

    你看错了  其实表达式2为true