覆盖枚举

时间:2013-05-24 08:24:25

标签: c# enums

我有一套枚举

public enum enums
{
    enum1,
    enum2,
    enum3,
    enum4,
    enum5
}

在另一个班级我想要两个对象:

var object1 = new enums();//Here I want an enum of enum1,enum2
var object2 = new enums();//Here I want an enum of enum3,enum4,enum5

有没有人知道如何做到这一点?

1 个答案:

答案 0 :(得分:7)

使用Flags属性,您可以分配更多值:

[Flags]
public enum enums
{
    enum1 = 1,
    enum2 = 2,
    enum3 = 4,
    enum4 = 8,
    enum5 = 16
}

这里有一篇很好的文章解释如何使用它:https://stackoverflow.com/a/8480/2043144

更多编辑:

然后你的代码应该是这样的:

enums object1 = enums.enum1 | enums.enum2;
enums object2 = enums.enum3 | enums.enum4 | enums.enum5;

检查您的object1是否包含给定标志:

if ((object1 & enums.enum1) == enums.enum1) 
{
    //object1 contains enums.enum1 flag
}