Î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
|