3

在我们的数据库中,我们有一个位掩码,表示用户可以执行的操作类型。

在我们的 C# 客户端中,当我们从数据库中检索这个整数值时,我们构造了一个枚举/标志。它看起来像下面这样:

[Flags]
public enum SellPermissions
{
    Undefined = 0,
    Buy = 1,
    Sell = 2,
    SellOpen = 4,
    SellClose = 8
    // ...
}

在我们的应用程序中,我有一个编辑权限页面,然后我用它来修改这个枚举的值,使用不同枚举值的按位或。

permissions = SellPermisions.Buy | SellPermissions.Sell;

现在,在进行这些更改之后,在我的数据库调用中,我需要调用一个更新/插入 sproc,它需要一个整数值。

如何从我的枚举/标志中取回整数位值,以便我可以在数据库中设置修改后的权限?

4

3 回答 3

7

我可以通过将变量转换为 int 来做到这一点。

int newPermissions = (int)permissions.
于 2010-06-03T14:37:49.650 回答
2
int permissionsValue = (int) permissions;
于 2010-06-03T14:57:51.423 回答
0

您可以像这样使用 HasFlag():

SellPermissions permissions = SellPermissions.Buy | SellPermissions.Sell;

if(permissions.HasFlag(SellPermissions.Sell))
{
    MessageBox.Show("You have Sell permissions");
}
于 2021-10-20T21:34:14.383 回答