【发布时间】:2010-09-10 18:15:02
【问题描述】:
在我的一生中,我不记得如何在位域中设置、删除、切换或测试位。要么我不确定,要么我把它们弄混了,因为我很少需要这些。所以有一个“小备忘单”会很好。
例如:
flags = flags | FlagsEnum.Bit4; // Set bit 4.
或
if ((flags & FlagsEnum.Bit4)) == FlagsEnum.Bit4) // Is there a less verbose way?
您能否举例说明所有其他常见操作,最好是使用 [Flags] 枚举的 C# 语法?
【问题讨论】:
-
这在here之前已经回答了
-
太糟糕了,链接没有出现在这个主题的问题提示中。
-
该问题被标记为 c/c++,因此即使语法看起来相同,搜索有关 C# 信息的人也可能不会在那里查看。
-
我不知道有一种不那么冗长的方式来进行位测试
-
@Andy,现在 .NET 4 中有一个用于位测试的 API。
标签: c# .net enums bit-manipulation flags