c# - 覆盖枚举

标签 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

有人知道我该怎么做吗?

最佳答案

使用 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
}

关于c# - 覆盖枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16730606/

相关文章:

c# - GET 请求有效,但 POST 请求在 Web API 2 中为 404

enums - 如何在 Rust 中的通用类型枚举上实现 fmt::Display?

c# - 如何使用 Stopwatch() 显示分钟和秒

c# - 动态加载程序集并手动强制路径以获取引用的程序集

c++ - 在C++中最快实现简单,虚拟,观察者排序的模式?

javascript - Websockets API 中 CloseEvent.code 的类型是什么

javascript - 编译成 d.ts 和 Javascript 输出的 Typescript 枚举

c# - 将 linq 查询结果转换为枚举

c# - 如何将此 C 类型转换为 C# 类型

c# - 确保客户端已收到来自信号器服务器点的消息的好方法是什么