c#是否使&;=and |=运算符

c#是否使&;=and |=运算符,c#,operators,short-circuiting,C#,Operators,Short Circuiting,我知道&&运算符和|运算符在c#中短路。 但是&=操作符和|=操作符也是这样吗? 假设我有一句话: bool a = doSomething(); a &= doNext(); 这是否保证等同于: bool a = doSomething(); if(!a) a = doNext(); a = a & doNext() 我想这实际上相当于: bool a = doSomething(); if(!a) a = doNext(); a = a & doNex

我知道
&&
运算符和
|
运算符在c#中短路。 但是
&=
操作符和
|=
操作符也是这样吗? 假设我有一句话:

bool a = doSomething();
a &= doNext();
这是否保证等同于:

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

我想这实际上相当于:

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

用谷歌搜索按位操作以查看更多信息。

是的,它是,不等于&&。它是&operator plus Assignment的简短版本。doNext方法将被调用并对任何“a”值执行。

所以,如果说“是的,它会”,你的意思是“不,它不会短路”?我有点误解了你的问题。我认为短路意味着&=而不是=…&。对不起,是的,你说得对。所以它不会短路。