C#&&运算
表达式1&&表达式2&&表达式3
表达式1为true
表达式2为false
表达式3为true
最后的结果为什么就变成了true了呢?百思不得其解啊
[解决办法]
那就说明这3个表达试都是true,去思考下为什么都是true了,而不是在想&&的问题
[解决办法]
对表达式求值本身会不会改变表达式的值?
比如:
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()));
[解决办法]
可能是其他地方的问题吧,按逻辑的话应该是false
[解决办法]
你看错了 其实表达式2为true