VS 2010调试器有枚举问题吗?

cho*_*bo2 0 c# enums visual-studio-2010 visual-studio

我正在考虑为我的权限类型创建一个枚举,而不是将它们全部存储为db中的true或false值.

class Program
{
    static void Main(string[] args)
    {
        Test addEdit = Test.AddEdit;
        bool hasEdit = addEdit.HasFlag(Test.Edit);
        bool hasAdd = addEdit.HasFlag(Test.Add);
        bool hasDelete = addEdit.HasFlag(Test.Delete);
        Console.WriteLine(hasEdit);
        Console.WriteLine(hasAdd);
        Console.WriteLine(hasDelete);
        Console.Read();
    }
}

   [Flags]
    public enum Test
    {
        Add = 0,
        Edit = 1,
        Delete = 2,
        AddEdit = Add | Edit
    }
Run Code Online (Sandbox Code Playgroud)

所以我做到了这一点.我发现有趣的是addEdit varaible在通过VS调试器查看时只显示"Edit"的值.起初我以为它没有存储这两个值.

我使用了hasFlag方法,当然它知道这两个值.

这是一个错误还是什么?

Ale*_*kov 5

AddEdit== Edit == 1.因此调试器不知道您是否要将1转换为"Edit"或"AddEdit".

你很可能想要的

[Flags] 
public enum Test 
{ 
    None = 0,
    Add = 1, 
    Edit = 2, 
    Delete = 4, 
    AddEdit = Add | Edit 
} 
Run Code Online (Sandbox Code Playgroud)