我需要编码枚举(eration),它可以转换为ushort数字并返回。出于某种原因,我需要使用位(而不是字节)。
[Flags]
public enum XFlags : ushort//word
{
None = 0,
Sequenced = "option enabled if LEFTmost bit is == 1",
Extra = "option enabled if RIGHTmost bit is == 1"
};
我的问题是我不知道如何指定位。另外我实际上需要使用[Flags]功能,为flag变量使用少量标志。那么使用这两个标志应该给我(ushort)位1000000000000001?
这可能吗?
答案 0 :(得分:3)
试试这个(它基本上就是你在代码中表达的内容,变成了ushort
):
[Flags]
public enum XFlags : ushort//word
{
None = 0,
Sequenced = 0x8000,
Extra = 0x0001
}
现在将XFlags.Sequenced
与XFlags.Extra
合并,最终会得到ushort
,并设置最左边和最右边的位。