[英]What does the “|=” operator do in C#?
我最近遇到了一些我不太了解的代碼。 以下是此代碼的基本表示形式:
bool flag = false;
flag |= someFunction();
在此示例中, someFunction()
是返回bool
值的函數。 我的問題是,什么是|
=運算符嗎?
在網絡上或在這個社區中,我沒有找到太多關於|=
信息。 我了解使用=
運算符的基本賦值操作,使用=
=運算符或其他變體的比較操作,但是我從未見過|=
在賦值中使用過。
我也知道|
運算符用於按位“ OR
比較。 但是,將其用作作業的一部分對我來說沒有任何意義。 在sudo代碼中,似乎上面的代碼在說:“如果“ flag”和someFunction()
之間按位“或”的結果導致為true,則將true值分配給flag。否則,將false的值分配給flag ”。 當然,如果標志或someFunction()
存儲/返回了真值,則結果將為真(基於按位“或”運算的結果)。
這是正確的解釋嗎? 如果這是|=
工作方式,那么由於我知道“ flag”為假,在這種情況下使用|=
運算符而不是簡單的=
賦值運算符真的有意義嗎?
提前致謝。
您是正確的, =
在您的情況下將具有相同的效果。
通常,如果存在多個這樣的條件,則第一個條件可能只是為了保持一致性而使用|=
,但在此沒有技術優勢。
flag |= someFunction()
等同於flag = flag | someFunction();
flag = flag | someFunction();
這是OR賦值運算符。
有關更多詳細信息,請參見MSDN 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.