我在CLR / CLI中具有以下枚举:
public enum class Days
{
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};
在C#中,如果要创建所选枚举的组合,我曾经在枚举减速之前添加了[Flags]
属性。
与C ++ CLR中存在类似的东西吗?
答案 0 :(得分:1)
C#中的some s = {"it is something"};
仅表示 可以将枚举 视为位字段。
真正重要的是,您可以适当地定义枚举值,以便可以对其执行AND,OR,NOT和XOR按位运算,即,应为每个枚举值分配下一个更大的2幂:
FlagsAttribute
public enum class Days
{
Sunday = 1,
Monday = 2,
Tuesday = 4,
Wednesday = 8,
Thursday = 16,
Friday = 32,
Saturday = 64
};
不会自动使枚举值的幂为2。
答案 1 :(得分:0)
您可以像这样在C ++ / CLI中使用flags属性:
[System::Flags]
public enum class Days : int
{
Sunday = 1,
Monday = 2,
Tuesday = 4,
Wednesday = 8,
Thursday = 16,
Friday = 32,
Saturday = 64
};
[Flags]不会自动使枚举值的幂为2。但是某些静态代码分析工具可能会要求它: