C#-ban logikai műveleteket végezhetsz egész számú objektumokon bitként. A logikai művelet bitként jelentése, hogy a működtetendő objektum minden bitjét sorban veszik, és minden bit logikai műveleti eredménye az eredmény értékének minden bitje. A C# által támogatott bitlogikai operátorokat az alábbi ábrán mutatják:
Alapvető engedélytervezés:
<summary>
///權限列舉 </summary> [FlagsAttribute] publicenumPermissions
{ Leírás ("Nem konfigurálva")] Nincs=0, [Leírás("Teremts")] Create=1, [Leírás ("Olvasás")] Olvass=2, [Leírás("Frissítés")] Frissítés=4, [Leírás("Törlés")] Delete=8, [Leírás ("Minden funkció")] Mind=Teremts| Olvasd| Frissítés| Törlés
}
1. technika: Használjuk a 2 hatványértékét a jövőbeli bitműveletekhez (&AND, |OR, ^XOR) felsorolási értékként.
2. tipp: Adj hozzá egy új engedély műveletet a meglévő jogosultsághoz. (OR művelet)
Permissionspermission=Permissions.None; engedély=engedély| Permissions.Create; MessageBox.Show(engedély. ToString()); Eredmény: Létrehozz
3. tipp: Add hozzá a [FlagsAttribute] címkét
Permissionspermission=Permissions.None; engedély=engedély| Permissions.Create; MessageBox.Show(engedély. ToString()); Eredmény:Create([FlagsAttribute] nem befolyásolja az eredményt)
engedély=engedély| Engedélyek.Olvasás; MessageBox.Show(engedély. ToString()); Eredmény: 3 ([FlagsAttribute] nem került hozzá) Eredmény:Create,Read (add hozzá [FlagsAttribute])
4. tipp: Távolíts el egy bizonyos engedély műveletet a meglévő engedélyből. (XOR és AND számítástechnikai alkalmazások)
Permissionspermission=Permissions.None; engedély=engedély| Permissions.Create; MessageBox.Show(engedély. ToString()); Eredmény: Létrehozz
engedély=engedély| Engedélyek.Olvasás; engedély=engedély| Permissions.Update; MessageBox.Show(engedély. ToString()); Eredmény: Létrehozni, Olvasni, Frissíteni
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(engedély. ToString()); Eredmény: Létrehozni, frissíteni
5. tipp: Határozd meg, hogy van-e egy bizonyos engedélyed a jelenlegi engedélyben (ÉS működésben)
Permissionspermission=Permissions.None; engedély=engedély| Permissions.Create; MessageBox.Show(engedély. ToString()); Eredmény: Létrehozz
engedély=engedély| Engedélyek.Olvasás; engedély=engedély| Permissions.Update; MessageBox.Show(engedély. ToString()); Eredmény: Létrehozni, Olvasni, Frissíteni
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(engedély. ToString()); Eredmény: Létrehozni, frissíteni
boolIsCreatable=hamis; if((permission&Permissions.Create)==Permissions.Create)
{ IsCreatable=true;
} más
{ IsCreatable=hamis;
} MessageBox.Show(IsCreatable.ToString()); Eredmény: Igaz
|