2014-10-07 27 views
0

我知道运算符&&||在c#中是短路的。 但是运营商是&=还是|=? 假设我有一个说法:c#是否将&&和| =运算符短路

bool a = doSomething(); 
a &= doNext(); 

这是保证等同于:

bool a = doSomething(); 
if(!a) 
    a = doNext(); 

回答

0

我想,实际上是等同于:按位操作

a = a & doNext() 

谷歌查看更多。

+0

是的,你说得对。所以它不会短路。 – arviman 2014-10-08 05:31:17

0

是的,它确实是http://msdn.microsoft.com/en-us/library/e669ax02.aspx,并且不是,它不等于& &。它是&运营商加分配的简短版本。 doNext方法将被调用并执行任何“a”值。

+3

所以,通过“是的确如此”,你的意思是“不,它不会短路”? – hvd 2014-10-07 09:48:58

+0

我错误地理解了你的问题。我认为短路是指=而不是= ... ...。抱歉 – Zed 2014-10-07 09:53:35