我想定义包含八个标志的结构。是否可以使用字节类型而不是8个布尔字段?我想有这样的东西
struct mystruct
{
byte first:1;
byte second:1;
...
}
我希望二进制表示给我标志值。
如果我有一些值应该超过1位,那该怎么办? G。 2或4
答案 0 :(得分:4)
是的,你可以不使用结构但使用枚举,如下所示:
[Flags]
public enum MyFlags
{
First = 1,
Second = 2,
Third = 4,
Fourth = 8
}
答案 1 :(得分:3)
你好卧底它将转换为字节看起来:
[FlagsAttribute]
public enum mystruct: byte
{
first= 1,
second =2
}
我还要为你发布IL代码吗?
更多信息: What does the [Flags] Enum Attribute mean in C#?
另外,Flags只是FlagsAttribute的缩写。