Comment puis-je obtenir le retour de valeur bitmask sur un ENUM avec l'attribut de drapeau en C #?

StackOverflow https://stackoverflow.com/questions/2966895

Question

Dans notre base de données, nous avons un bitmask qui représente les types d'actions qu'un utilisateur peut faire.

Dans notre client C # quand nous récupérons cette valeur entière de la base de données, nous construisons un ENUM / drapeau. Il ressemble un peu à ce qui suit:

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

Dans notre application, j'ai une autorisation d'édition la page que je puis utiliser pour modifier la valeur de cette ENUM en utilisant l'opérateur OR sur les différentes valeurs ENUM.

permissions = SellPermisions.Buy | SellPermissions.Sell;

Maintenant, après ces modifications, dans mon appel de base de données que je dois appeler une mise à jour / insert sproc qui attend une valeur entière.

Comment puis-je obtenir l'entier valeur binaire arrière de mon ENUM / drapeau afin que je puisse définir les autorisations modifiées dans la base de données?

Était-ce utile?

La solution

j'ai pu le faire en lançant la variable à un int.

int newPermissions = (int)permissions.

Autres conseils

int permissionsValue = (int) permissions;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top