C# |=运算符在C中做什么?

C# |=运算符在C中做什么?,c#,c#-4.0,language-features,C#,C# 4.0,Language Features,从中浏览代码示例 我遇到了一些涉及枚举的有趣运算符 [Flags] public enum BorderSides { Left=1, Right=2, Top=4, Bottom=8 } ... BorderSides leftRight = BorderSides.Left | BorderSides.Right; ... BorderSides s = BorderSides.Left; s |= BorderSides.Right; ... s ^= BorderSides.Rig

从中浏览代码示例 我遇到了一些涉及枚举的有趣运算符

[Flags]
public enum BorderSides { Left=1, Right=2, Top=4, Bottom=8 }

...
BorderSides leftRight = BorderSides.Left | BorderSides.Right;
...

BorderSides s = BorderSides.Left;
s |= BorderSides.Right;
...

s ^= BorderSides.Right; 
在其他地方有记录吗

更新


找到一个与此相关的

供您参考-并且

|=
是按位或赋值

本声明:

BorderSides s = BorderSides.Left;
s |= BorderSides.Right;

BorderSides s = BorderSides.Left;
s = s | BorderSides.Right;
这通常在枚举中用作标志,以便能够在单个值中存储多个值,例如32位整数(C#中
enum
的默认大小)


它类似于
+=
运算符,但不是执行加法,而是执行按位or。

它是按位or运算符,不能与逻辑or(处理布尔)混淆

维基百科有一篇关于这方面的文章:

为什么不感到困惑?它也适用于胸部。它的作用取决于参数,无论如何,在这两种情况下,a |=b等于a=a | b。