2

我需要编码 enum(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] 功能,为标志变量使用少量标志。所以使用这两个标志应该给我(ushort)位1000000000000001?

那可能吗?

4

1 回答 1

3

试试这个(它基本上就是你在代码中表达的,变成了ushort):

[Flags]
public enum XFlags : ushort//word
{
    None = 0,
    Sequenced = 0x8000,
    Extra = 0x0001
}

现在XFlags.SequencedXFlags.Extra你结合最终得到一个ushort, 设置了最左边和最右边的位。

于 2013-09-19T09:51:04.043 回答