如何从C#中的flag属性的枚举中获取位掩码值?
问题描述:
在我们的数据库中,我们有一个位掩码,表示用户可以做什么类型的动作。如何从C#中的flag属性的枚举中获取位掩码值?
在我们的C#客户端,当我们从数据库中检索这个整数值时,我们构造了一个枚举/标志。它看起来有点像下面这样:
[Flags]
public enum SellPermissions
{
Undefined = 0,
Buy = 1,
Sell = 2,
SellOpen = 4,
SellClose = 8
// ...
}
在我们的应用我有一个编辑权限页面,然后我用它来修改使用位或在不同的枚举值此枚举值。
permissions = SellPermisions.Buy | SellPermissions.Sell;
现在,这些更改后,在我的数据库调用我需要调用哪些期待一个整数值的更新/插入存储过程。
如何从我的枚举/标志中取回整型按位值,以便我可以在数据库中设置修改后的权限?
答
我能够通过将变量转换为int来实现。
int newPermissions = (int)permissions.
答
int permissionsValue = (int) permissions;