C#:ssa voit suorittaa loogisia operaatioita kokonaislukuobjekteille bittinä. Loogisen bittioperaation merkitys on, että jokainen operoitavan objektin bitti otetaan vuorollaan, ja jokaisen bitin looginen operaation tulos on jokaisen bitin arvon bitti. C#:n tukemat bittilogiikkaoperaattorit on esitetty seuraavassa kuvassa:
Perusluvan suunnittelu:
<summary>
///權限列舉 </summary> [Liput Attribuutti] publicenumPermissions
{ Kuvaus("Ei konfiguroitu")] Ei mitään=0, [Kuvaus("Luo")] Create=1, [Kuvaus("Lue")] Read=2, [Kuvaus("Päivitys")] Päivitys=4, [Kuvaus("Poista")] Delete=8, [Kuvaus ("Kaikki ominaisuudet")] Kaikki=Luo| Lue| Päivitys| Poista
}
Tekniikka 1: Käytä potenssiarvoa 2 tulevien bittitoimintojen (&AND, |OR, ^XOR) lukumääränä.
Vinkki 2: Lisää uusi käyttöoikeustoiminto olemassa olevaan oikeuteen. (OR Operation)
Permissionspermission=Permissions.None; permission=permission| Permissions.Create; MessageBox.Show(permission. ToString()); Tulos: Luo
Vinkki 3: Lisää [FlagsAttribute] -tunniste
Permissionspermission=Permissions.None; permission=permission| Permissions.Create; MessageBox.Show(permission. ToString()); Tulos:Luo([FlagsAttribute] ei vaikuta tulokseen)
permission=permission| Käyttöoikeudet. Lue; MessageBox.Show(permission. ToString()); Tulos: 3 ([FlagsAttribute] ei lisätty) Tulos:Luo,Lue (lisää [FlagsAttribute])
Vinkki 4: Poista tietty käyttöoikeustoiminto olemassa olevasta luvasta. (XOR- ja AND-laskentasovellukset)
Permissionspermission=Permissions.None; permission=permission| Permissions.Create; MessageBox.Show(permission. ToString()); Tulos: Luo
permission=permission| Käyttöoikeudet. Lue; permission=permission| Permissions.Update; MessageBox.Show(permission. ToString()); Tulos: Luo, lue, päivitä
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(permission. ToString()); Tulos: Luo, päivitä
Vinkki 5: Selvitä, onko sinulla tietty oikeus nykyisessä käyttöoikeusjärjestelmässä (JA toiminnassa)
Permissionspermission=Permissions.None; permission=permission| Permissions.Create; MessageBox.Show(permission. ToString()); Tulos: Luo
permission=permission| Käyttöoikeudet. Lue; permission=permission| Permissions.Update; MessageBox.Show(permission. ToString()); Tulos: Luo, lue, päivitä
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(permission. ToString()); Tulos: Luo, päivitä
boolIsCreatable=epätosi; if((permission&Permissions.Create)==Permissions.Create)
{ IsCreatable=true;
} else
{ IsCreaable=false;
} MessageBox.Show(IsCreatable.ToString()); Tulos: Tosi
|