日期:2014-05-18  浏览次数:21031 次

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

------解决方案--------------------
那就说明这3个表达试都是true,去思考下为什么都是true了,而不是在想&&的问题
------解决方案--------------------
对表达式求值本身会不会改变表达式的值?

比如:
C# code
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