相关疑难解决方法(0)

[Flags]枚举属性在C#中意味着什么?

我不时会看到如下的枚举:

[Flags]
public enum Options 
{
    None    = 0,
    Option1 = 1,
    Option2 = 2,
    Option3 = 4,
    Option4 = 8
}
Run Code Online (Sandbox Code Playgroud)

我不明白[Flags]-attribute 到底是做什么的.

任何人都可以发布一个很好的解释或示例?

c# enums flags

1383
推荐指数
12
解决办法
46万
查看次数

按位枚举转换值不是预期的

我有以下枚举:

[Flags]
    public enum PermissionLevel {
        User = 1,
        Administrator = 2,
        ITStaff = 3,
        Manager = 4,
        SuperAdministrator = 6,
    }
Run Code Online (Sandbox Code Playgroud)

当我做:

PermissionLevel permission = (PermissionLevel) dr.GetInt32(i);
Run Code Online (Sandbox Code Playgroud)

我获得分配给权限对象的随机权限值.例如,如果是6,我的权限对象返回"管理员|经理",我应该得到"超级管理员".当我将实例强制转换为整数时,它返回6.

我错过了什么吗?

c# enums bit-manipulation

1
推荐指数
1
解决办法
501
查看次数

标签 统计

c# ×2

enums ×2

bit-manipulation ×1

flags ×1