您必须[Flags]
在您的枚举声明之前添加
[Flags]
public enum TrayModes
{
SingleUnit = 0x01
, Tray = 0x02
, Poll = 0x04
, Trigger = 0x08
};
考虑使用 HasFlag 函数来检查设置的标志
TrayModes t=TrayModes.SingleUnit|TrayModes.Poll;
if(t.HasFlag(TrayModes.SingleUnit))
//return true
编辑:这是因为带有 flags 属性的枚举以不同的方式受到威胁,正如您在http://msdn.microsoft.com/en-us/library/system.flagsattribute.aspx中的示例中所见
A To string of enum with并且没有 Flags 属性显示它们的不同之处
没有 FlagsAttribute 的 Enum 值的所有可能组合:
0 - Black
1 - Red
2 - Green
3 - 3
4 - Blue
5 - 5
6 - 6
7 - 7
8 - 8
带有 FlagsAttribute 的枚举值的所有可能组合:
0 - Black
1 - Red
2 - Green
3 - Red, Green
4 - Blue
5 - Red, Blue
6 - Green, Blue
7 - Red, Green, Blue
8 - 8