And*_*rry 3 c# language-features c#-4.0
简而言之,从C#4.0浏览代码示例 我遇到了一些涉及枚举的有趣运算符
[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;
Run Code Online (Sandbox Code Playgroud)
在其他地方记录了哪里?
UPDATE
找到与此相关的论坛帖子
|= 是一个按位或任务.
这个说法:
BorderSides s = BorderSides.Left;
s |= BorderSides.Right;
Run Code Online (Sandbox Code Playgroud)
是相同的
BorderSides s = BorderSides.Left;
s = s | BorderSides.Right;
Run Code Online (Sandbox Code Playgroud)
这通常在枚举中用作标志,以便能够在单个值中存储多个值,例如32位整数(enumC#中的默认大小).
它类似于+=运算符,但不是做加法,而是按位运算.