Я недавно столкнулся с некоторым кодом, который я не совсем понимаю. Ниже приводится основное представление этого кода:Что делает оператор «| =» в C#?
bool flag = false;
flag |= someFunction();
В этом примере someFunction()
является функцией, которая возвращает значение bool
. Мой вопрос: что делает оператор |
=?
Я не нашел много информации о |=
в сети или в этом сообществе. Я понимаю основные операции присваивания с использованием оператора =
, операции сравнения с использованием оператора =
= или других вариантов, но я никогда не видел |=
, который использовался в задании раньше.
Я также знаю, что оператор |
используется для побитового включения OR
. Однако для меня нет смысла использовать это как часть задания. В коде sudo кажется, что в приведенном выше коде говорится: «Если результат побитового включения ИЛИ между« флагом »и someFunction()
приводит к истинному значению, присвойте истинное значение флагу. В противном случае присвойте флажку значение false.» Конечно, если либо флаг, либо someFunction()
хранит/возвращает истинное значение, тогда результат будет истинным (на основе того, как работает побитовое включение OR).
Является ли это правильной интерпретацией? Если это так, как работает |=
, так как я знаю, что «флаг» является ложным, действительно ли имеет смысл использовать оператор |=
, а не простой оператор назначения =
в этом сценарии?
Заранее спасибо.
похоже, что вы знаете, как '|' работать, вы должны знать, как '+ =' работать, '| =' означает 'флаг = флаг | someFunction() '.... просто так просто – Sean
Да, это избыточно, если' flag' определенно 'false', но если вы используете связку в строке, то это не так. – Ryan
Спасибо за ответы. Это успокаивает меня, что моя первоначальная интерпретация была правильной. Я не вижу необходимости опускать вопрос, потому что раньше этого не спрашивали в этом сообществе, и интерпретация не очевидна вначале. –