繁体   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