枚举上最常见的C#按位操作

枚举上最常见的C#按位操作

对于我的生活,我不记得如何设置,删除,切换或测试位域中的位。要么我不确定,要么混淆它们,因为我很少需要这些。因此,“比特作弊表”会很好。

例如:

flags = flags | FlagsEnum.Bit4;  // Set bit 4.

要么

if ((flags & FlagsEnum.Bit4)) == FlagsEnum.Bit4) // Is there a less verbose way?

您能举例说明所有其他常见操作,最好是使用[Flags]枚举的C#语法吗?


白衣非少年
浏览 1087回答 3
3回答

浮云间

在.NET 4中,您现在可以编写:flags.HasFlag(FlagsEnum.Bit4)

largeQ

习惯用法是使用按位或等于运算符来设置位:flags&nbsp;|=&nbsp;0x04;要清除一点,成语是按位使用和否定:flags&nbsp;&=&nbsp;~0x04;有时你有一个标识你的位的偏移量,然后成语是使用这些与左移相结合:flags&nbsp;|=&nbsp;1&nbsp;<<&nbsp;offset;flags&nbsp;&=&nbsp;~(1&nbsp;<<&nbsp;offset);
打开App,查看更多内容
随时随地看视频慕课网APP