C# 4.0 in a nutshell 浏览代码示例
我遇到了一些涉及枚举的有趣运算符

[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;

这在其他地方记录在哪里?

更新

找到与此相关的 forum post

最佳答案

|= 是按位或赋值。

这个说法:

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

是相同的
BorderSides s = BorderSides.Left;
s = s | BorderSides.Right;

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

它类似于 += 运算符,但不是做加法,而是按位或。

关于c# - |= 运算符在 C# 中有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4590895/

10-10 00:05