我想定义包含八个标志的结构。是否可以在其中使用字节类型而不是 8 个布尔字段?我想要这样的东西
struct mystruct
{
byte first:1;
byte second:1;
...
}
我想要二进制表示给我标志值。
如果我有一些值应该超过 1 位,例如 2 或 4
我想定义包含八个标志的结构。是否可以在其中使用字节类型而不是 8 个布尔字段?我想要这样的东西
struct mystruct
{
byte first:1;
byte second:1;
...
}
我想要二进制表示给我标志值。
如果我有一些值应该超过 1 位,例如 2 或 4
是的,您可以不使用结构,而是使用枚举,如下所示:
[Flags]
public enum MyFlags
{
First = 1,
Second = 2,
Third = 4,
Fourth = 8
}
嗨卧底它将被转换为字节看这个:
[FlagsAttribute]
public enum mystruct: byte
{
first= 1,
second =2
}
我也可以为您发布 IL 代码吗?
更多信息: C# 中的 [Flags] 枚举属性是什么意思?
顺便说一下,Flags 只是 FlagsAttribute 的简写。