2014-10-07 4 views
0

Я знаю, что оператор && и операторы || закорочены в C#. Но есть ли операторы &= и операторы |=? Предположим, у меня есть заявление:Выполняет C# короткое замыкание оператора & = и | =

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

Является ли это гарантированно будет эквивалентно:

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

ответ

0

Я полагаю, что фактически будет эквивалентно:

a = a & doNext() 

Google для поразрядными операций узнать больше.

+0

Да, вы правы. Поэтому он не будет замыкаться. – arviman

0

Да, он http://msdn.microsoft.com/en-us/library/e669ax02.aspx и не равен & &. Это короткая версия оператора & оператора. Метод doNext будет вызываться и выполняться для любого значения «a».

+3

Итак, «Да, это так», вы имеете в виду «Нет, это не короткое замыкание»? – hvd

+0

Я пропустил ваш вопрос немного. Я думал, что короткое замыкание означает & = вместо = ... & .... сожалею – Zed

Смежные вопросы