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方法,当然它知道这两个值.
这是一个错误还是什么?
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)