簡體   English   中英

“ | =”運算符在C#中做什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM