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

c#的优化真让人费解... 浪费了一个小时之后的抱怨~_~
bool c = true;
if (c || a());
这里a()被优化掉了,没执行... 当然倒是说得过去,因为a()不需要执行结果就确定了,但类似的情况

bool c = true;
c |= a();
同样是不需要执行 a() 就能确定 c 的值,c#却又不优化了... 唉! 头疼的双重标准!

------解决方案--------------------
||和|是一个意思吗?
------解决方案--------------------
只有||有短路计算,而|没有
本来就是这样的
------解决方案--------------------
x |= y
相当于
x = x | y
而 | 是没有短路运算的

------解决方案--------------------
探讨
||和|是一个意思吗?