首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#&&运算,该如何解决

2012-04-27 
C#&&运算表达式1&&表达式2&&表达式3表达式1为true表达式2为false表达式3为true最后的结果为什么就变成了tr

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

热点排行