I C# kan du utføre logiske operasjoner på heltallsobjekter per bit. Betydningen av logisk operasjon per bit er at hver bit i objektet som skal opereres tas i tur og ordning, og det logiske operasjonsresultatet for hver bit er hver bit av resultatets verdi. Bitlogikkoperatorene støttet av C# vises i følgende figur:
Grunnleggende tillatelsesdesign:
<summary>
///權限列舉 </summary> [FlagsAttribute] publicenumTillatelser
{ Beskrivelse ("Ikke konfigurert")] Ingen=0, [Beskrivelse ("Skap")] Create=1, [Beskrivelse ("Les")] Read=2, [Beskrivelse ("Oppdatering")] Oppdatering=4, [Beskrivelse ("Slett")] Delete=8, [Beskrivelse ("Alle funksjoner")] alle=Skape| Les| Oppdatering| Slett
}
Teknikk 1: Bruk effektverdien 2 som oppramsningsverdi for fremtidige bitoperasjoner (&AND, |ELLER, ^XOR).
Tips 2: Legg til en ny tillatelseshandling til den eksisterende tillatelsen. (OR-operasjon)
Permissionspermission=Permissions.None; tillatelse=tillatelse| Permissions.Create; MessageBox.Show(tillatelse. ToString()); Resultat:Lag
Tips 3: Legg til [FlagsAttribute]-taggen
Permissionspermission=Permissions.None; tillatelse=tillatelse| Permissions.Create; MessageBox.Show(tillatelse. ToString()); Result:Create([FlagsAttribute] påvirker ikke resultatet)
tillatelse=tillatelse| Tillatelser.Les; MessageBox.Show(tillatelse. ToString()); Resultat: 3 ([FlagsAttribute] ikke lagt til) Resultat:Opprette,Les (legg til [FlagsAttribute])
Tips 4: Fjern en bestemt tillatelseshandling fra den eksisterende tillatelsen. (XOR og AND beregningsapplikasjoner)
Permissionspermission=Permissions.None; tillatelse=tillatelse| Permissions.Create; MessageBox.Show(tillatelse. ToString()); Resultat:Lag
tillatelse=tillatelse| Tillatelser.Les; tillatelse=tillatelse| Permissions.Update; MessageBox.Show(tillatelse. ToString()); Resultat:Lag, Les, Oppdater
tillatelse=(tillatelse&(Tillatelser.All^Tillatelser.Les)); MessageBox.Show(tillatelse. ToString()); Resultat:Opprette, Oppdater
Tips 5: Finn ut om du har en viss tillatelse i den nåværende tillatelsen (OG driften)
Permissionspermission=Permissions.None; tillatelse=tillatelse| Permissions.Create; MessageBox.Show(tillatelse. ToString()); Resultat:Lag
tillatelse=tillatelse| Tillatelser.Les; tillatelse=tillatelse| Permissions.Update; MessageBox.Show(tillatelse. ToString()); Resultat:Lag, Les, Oppdater
tillatelse=(tillatelse&(Tillatelser.All^Tillatelser.Les)); MessageBox.Show(tillatelse. ToString()); Resultat:Opprette, Oppdater
boolIsCreatable=falsk; if((permission&Permissions.Create)==Permissions.Create)
{ IsCreatable=sann;
} ellers
{ IsCreatable=falsk;
} MessageBox.Show(IsCreatable.ToString()); Resultat: Sant
|