I C# kan du udføre logiske operationer på heltalsobjekter efter bit. Betydningen af logisk operation per bit er, at hver bit af det objekt, der skal opereres, tages i rækkefølge, og det logiske operationsresultat for hver bit er hver bit af resultatværdien. Bitlogikoperatorerne, som C# understøtter, vises i følgende figur:
Grundlæggende tilladelsesdesign:
<summary>
///權限列舉 </summary> [FlagsAttribute] publicenumTilladelser
{ Beskrivelse ("Ikke konfigureret")] Ingen=0, [Beskrivelse ("Skab")] Create=1, [Beskrivelse ("Læs")] Read=2, [Beskrivelse ("Opdatering")] Opdatering=4, [Beskrivelse ("Slet")] Delete=8, [Beskrivelse ("Alle funktioner")] alle=Skab| Læs| Opdatering| Slet
}
Teknik 1: Brug effektværdien 2 som opremsningsværdi for fremtidige bitoperationer (&AND, |ELLER, ^XOR).
Tip 2: Tilføj en ny tilladelseshandling til den eksisterende tilladelse. (OR-operation)
Permissionspermission=Permissions.None; tilladelse=tilladelse| Permissions.Create; MessageBox.Show(tilladelse. ToString()); Resultat: Opret
Tip 3: Tilføj tagget [FlagsAttribute]
Permissionspermission=Permissions.None; tilladelse=tilladelse| Permissions.Create; MessageBox.Show(tilladelse. ToString()); Result:Create([FlagsAttribute] påvirker ikke resultatet)
tilladelse=tilladelse| Tilladelser.Læs; MessageBox.Show(tilladelse. ToString()); Resultat: 3 ([FlagsAttribute] ikke tilføjet) Resultat:Oprette,Læs (tilføj [FlagsAttribute])
Tip 4: Fjern en bestemt tilladelseshandling fra den eksisterende tilladelse. (XOR og AND computing applikationer)
Permissionspermission=Permissions.None; tilladelse=tilladelse| Permissions.Create; MessageBox.Show(tilladelse. ToString()); Resultat: Opret
tilladelse=tilladelse| Tilladelser.Læs; tilladelse=tilladelse| Tilladelser. Opdatering; MessageBox.Show(tilladelse. ToString()); Resultat:Opadér, Læs, Opdater
tilladelse=(tilladelse&(Tilladelser.Alle^Tilladelser.Læs)); MessageBox.Show(tilladelse. ToString()); Resultat:Oprette, Opdater
Tip 5: Bestem om du har en bestemt tilladelse i den nuværende tilladelse (OG operation)
Permissionspermission=Permissions.None; tilladelse=tilladelse| Permissions.Create; MessageBox.Show(tilladelse. ToString()); Resultat: Opret
tilladelse=tilladelse| Tilladelser.Læs; tilladelse=tilladelse| Tilladelser. Opdatering; MessageBox.Show(tilladelse. ToString()); Resultat:Opadér, Læs, Opdater
tilladelse=(tilladelse&(Tilladelser.Alle^Tilladelser.Læs)); MessageBox.Show(tilladelse. ToString()); Resultat:Oprette, Opdater
boolIsCreatable=falsk; if((permission&Permissions.Create)==Permissions.Create)
{ IsCreatable=sand;
} ellers
{ IsCreatable=falsk;
} MessageBox.Show(IsCreatable.ToString()); Resultat: Sandt
|