c#的优化真让人费解... 浪费了一个小时之后的抱怨~_~ bool c = true; if (c || a()); 这里a()被优化掉了,没执行... 当然倒是说得过去,因为a()不需要执行结果就确定了,但类似的情况
bool c = true; c |= a(); 同样是不需要执行 a() 就能确定 c 的值,c#却又不优化了... 唉! 头疼的双重标准!
------解决方案-------------------- ||和|是一个意思吗?
------解决方案-------------------- 只有||有短路计算,而|没有 本来就是这样的
------解决方案-------------------- x |= y 相当于 x = x | y 而 | 是没有短路运算的