Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 24485|Répondre: 3

[Source] C# Enum Simple Permission Design utilise la propriété FlagsAttribute

[Copié le lien]
Publié sur 22/04/2019 14:30:51 | | | |
En C#, vous pouvez effectuer des opérations logiques sur des objets entiers par bit. La signification de l’opération logique par bit est que chaque bit de l’objet à opérer est pris à son tour, et le résultat logique de chaque bit correspond à chaque bit de la valeur du résultat. Les opérateurs de logique binaire supportés par C# sont présentés dans la figure suivante :



Conception de base des autorisations :

<summary>
///權限列舉
</summary>
[DrapeauxAttribut]
publicenumPermissions
{
Description (« Non configuré »)]
Aucun=0,
[Description (« Créer »)]
Créer=1,
[Description (« Lu »)]
Lecture=2,
[Description (« Mise à jour »)]
Mise à jour=4,
[Description (« Supprimer »)]
Supprimer = 8,
[Description (« Toutes les fonctionnalités »)]
Tous=Créer| Read| Mise à jour| Supprimer
}



Technique 1 : Utiliser la valeur de puissance de 2 comme valeur d’énumération pour les opérations futures sur les bits (&ET, |OU, ^XOR).


Conseil 2 : Ajoutez une nouvelle action d’autorisation à l’autorisation existante. (Opération BLOC)

permissionspermission=Permissions.None ;
permission=permission| Permissions.Create ;
MessageBox.Show(permission. ToString()) ;
Résultat : Créer

Conseil 3 : Ajoutez le tag [FlagsAttribute]

permissionspermission=Permissions.None ;
permission=permission| Permissions.Create ;
MessageBox.Show(permission. ToString()) ;
Résult :Create([FlagsAttribute] n’affecte pas le résultat)

permission=permission| Permissions.Lire ;
MessageBox.Show(permission. ToString()) ;
Résultat : 3 ([FlagsAttribute] non ajouté)
Résultat : Créer, lire (ajouter [FlagsAttribute])


Conseil 4 : Supprimez une certaine action d’autorisation de l’autorisation existante. (Applications informatiques XOR et AND)

permissionspermission=Permissions.None ;
permission=permission| Permissions.Create ;
MessageBox.Show(permission. ToString()) ;
Résultat : Créer

permission=permission| Permissions.Lire ;
permission=permission| Permissions.Mise à jour ;
MessageBox.Show(permission. ToString()) ;
Résultat : Créer, lire, mettre à jour

permission=(permission&(Permissions.All^Permissions.Read)) ;
MessageBox.Show(permission. ToString()) ;
Résultat : Créer, Mettre à jour


Conseil 5 : Déterminez si vous avez une certaine autorisation dans l’opération actuelle (ET de permission)

permissionspermission=Permissions.None ;
permission=permission| Permissions.Create ;
MessageBox.Show(permission. ToString()) ;
Résultat : Créer

permission=permission| Permissions.Lire ;
permission=permission| Permissions.Mise à jour ;
MessageBox.Show(permission. ToString()) ;
Résultat : Créer, lire, mettre à jour

permission=(permission&(Permissions.All^Permissions.Read)) ;
MessageBox.Show(permission. ToString()) ;
Résultat : Créer, Mettre à jour

boolIsCreatable=faux ;
if((permission&Permissions.Create)==Permissions.Create)
{
IsCréable=vrai ;
}
sinon
{
IsCréable=faux ;
}
MessageBox.Show(IsCreatable.ToString()) ;
Résultat : Vrai

Les enums C# utilisent la fonction Flags, où plusieurs valeurs sont stockées dans une seule variable d’énumération
https://www.itsvse.com/thread-4661-1-1.html
(Source : Architect_Programmer)







Précédent:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
Prochain:Les similitudes et différences entre le virtuel et l’abstrait (abstrait) et l’interface en C#...
Publié sur 23/04/2019 08:28:32 |
Discutez sérieusement et améliorez-vous ensemble ! - Mar 23 avr. 2019 08:28:32 GMT+0800 (heure normale de Chine)
Publié sur 11/11/2019 09:49:58 |
Comment obtenir une description pour une énumération multi-sélection ?
 Propriétaire| Publié sur 11/11/2019 11:00:19 |
Ciel bleu et nuages blancs Publié le 11-11-2019 à 09:49
Comment obtenir une description pour une énumération multi-sélection ?

Veuillez vous référer à l’article ci-dessous

C# Classe d’extension d’opération de type enum
https://www.itsvse.com/thread-7286-1-1.html
(Source : Architect_Programmer)
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com