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