Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 24485|Răspunde: 3

[Sursă] C# Enum Simple Permit Design folosește proprietatea FlagsAttribute

[Copiază linkul]
Postat pe 22.04.2019 14:30:51 | | | |
În C#, poți efectua operații logice pe obiecte întregi pe biți. Sensul operației logice pe bit este că fiecare bit al obiectului ce urmează a fi operat este preluat pe rând, iar rezultatul operației logice al fiecărui bit este fiecare bit din valoarea rezultatului. Operatorii logici pe biți susținuți de C# sunt prezentați în figura următoare:



Proiectare de bază a permisiunilor:

<summary>
///權限列舉
</summary>
[FlagsAttribute]
publicenumPermisiuni
{
Descriere("Neconfigurat")]
Niciunul=0,
[Descriere("Creează")]
Creează=1,
[Descriere("Citit")]
Citit=2,
[Descriere("Actualizare")]
Actualizare=4,
[Descriere("Șterge")]
Șterge=8,
[Descriere("Toate Funcțiile")]
Toți=Creează| Read| Actualizare| Șterge
}



Tehnica 1: Folosiți valoarea puterii 2 ca valoare de enumerare pentru operațiunile viitoare de biți (&AND, |OR, ^XOR).


Sfat 2: Adaugă o nouă acțiune de permisiune la permisiunea existentă. (Operațiune OR)

Permisiuniiperți=Permisiuni.Niciunul;
permisiune=permisiune| Permisiuni. Creează;
MessageBox.Show(permisiune). ToString());
Rezultat: Creează

Sfatul 3: Adaugă eticheta [FlagsAttribute]

Permisiuniiperți=Permisiuni.Niciunul;
permisiune=permisiune| Permisiuni. Creează;
MessageBox.Show(permisiune). ToString());
Rezultat:Creează([FlagsAttribute] nu afectează rezultatul)

permisiune=permisiune| Permisiuni.Citit;
MessageBox.Show(permisiune). ToString());
Rezultat: 3 ([FlagsAttribute] nu a fost adăugat)
Rezultat:Creează, citește (adaugă [FlagsAttribute])


Sfat 4: Elimină o anumită acțiune de permisiune din permisiunea existentă. (Aplicații de calcul XOR și AND)

Permisiuniiperți=Permisiuni.Niciunul;
permisiune=permisiune| Permisiuni. Creează;
MessageBox.Show(permisiune). ToString());
Rezultat: Creează

permisiune=permisiune| Permisiuni.Citit;
permisiune=permisiune| Permisiuni. Actualizare;
MessageBox.Show(permisiune). ToString());
Rezultat: Creează, citește, actualizează

permisiune=(permisiuni&(Permisiuni.Toate^Permisiuni.Citit));
MessageBox.Show(permisiune). ToString());
Rezultat: Creează, Actualizează


Sfat 5: Determină dacă ai o anumită permisiune în operația curentă (ȘI permisiune)

Permisiuniiperți=Permisiuni.Niciunul;
permisiune=permisiune| Permisiuni. Creează;
MessageBox.Show(permisiune). ToString());
Rezultat: Creează

permisiune=permisiune| Permisiuni.Citit;
permisiune=permisiune| Permisiuni. Actualizare;
MessageBox.Show(permisiune). ToString());
Rezultat: Creează, citește, actualizează

permisiune=(permisiuni&(Permisiuni.Toate^Permisiuni.Citit));
MessageBox.Show(permisiune). ToString());
Rezultat: Creează, Actualizează

boolIsCreatable=false;
if((permisiuni&Permisiuni.Creează)==Permisiuni.Creează)
{
IsCreatabil=adevărat;
}
altfel
{
IsCreatabil=fals;
}
MesajBox.Show(IsCreate.ToString());
Rezultat: Adevărat

Enum-urile C# folosesc funcția Flags, unde mai multe valori sunt stocate într-o singură variabilă de enumerare
https://www.itsvse.com/thread-4661-1-1.html
(Sursa: Architect_Programmer)







Precedent:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
Următor:Asemănările și diferențele dintre abstracth virtual și (abstract) și interfața în C#...
Postat pe 23.04.2019 08:28:32 |
Discutați cu atenție și îmbunătățiți-vă împreună! - Mar 23 Apr 2019 08:28:32 GMT+0800 (Ora Standard a Chinei)
Postat pe 11.11.2019 09:49:58 |
Cum obțin o descriere pentru o enumerare multi-select?
 Proprietarul| Postat pe 11.11.2019 11:00:19 |
Cer albastru și nori albi Postat la 2019-11-11 09:49
Cum obțin o descriere pentru o enumerare multi-select?

Vă rugăm să consultați articolul de mai jos

C# Clasa de extensie a operației de tip enum
https://www.itsvse.com/thread-7286-1-1.html
(Sursa: Architect_Programmer)
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com