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。