我正在考虑为我的权限类型创建一个枚举,而不是将它们全部存储为 db 中的真值或假值。
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
}
所以我做了这个。我发现的有趣的事情是 addEdit 变量在通过 VS 调试器查看时仅显示“编辑”的值。起初我认为它没有存储两个值。
我使用了 hasFlag 方法,果然它知道这两个值。
那么它是一个错误还是什么?