【发布时间】:2011-10-07 18:01:09
【问题描述】:
是否有可能将 int 转换为标志组合枚举?所以,如果
[Flags]
public enum Foo {a = 0x80,
b = 0x40,
c = ...,
...
h = 0x1,
i = 0};
是否可以(或以某种方式)这样做
Foo fooInstance = (Foo)6;
所以fooInstance 将是 00000110?
谢谢!
【问题讨论】:
-
你尝试的时候发生了什么?
-
@VirtualBlackFox:标志部分是不同的方面。
-
@GertArnold
FlagsAttributeAFAIK 仅用于Enum.ToString方法,无论编译器是否存在,编译器都不会发生任何变化。它的名称甚至在语言规范文档中都找不到。 value -> enum 被定义为 value -> enum_underlaying_type,没有任何例外。因此,虽然 OP 不知道它的问题是重复的,但确实如此。