C# jūs varat veikt loģiskas darbības ar veseliem objektiem pa bitiem. Loģiskās operācijas ar bitu nozīme ir tāda, ka katrs darbināmā objekta bits tiek ņemts pēc kārtas, un katra bita loģiskās operācijas rezultāts ir katrs rezultāta vērtības bits. C# atbalstītie bitu loģikas operatori ir parādīti šajā attēlā:
Pamata atļaujas noformējums:
<summary>
///權限列舉 </summary> [Karogu atribūts] publicenumAtļaujas
{ Description("Nav konfigurēts")] Nav=0, [Apraksts ("Izveidot")] Izveidot=1, [Apraksts ("Lasīt")] Lasīt = 2, [Apraksts ("Atjauninājums")] Atjauninājums=4, [Apraksts ("Dzēst")] Dzēst=8, [Apraksts ("Visas funkcijas")] Visi=Izveidot| Lasīt | Atjaunināt | Dzēst
}
1. paņēmiens: izmantojiet jaudas vērtību 2 kā uzskaitījuma vērtību turpmākām bitu operācijām (&AND, |OR, ^XOR).
2. padoms: pievienojiet jaunu atļaujas darbību esošajai atļaujai. (VAI operācija)
Permissionspermission=Atļaujas.Nav; atļauja=atļauja| Atļaujas.Izveidot; MessageBox.Show(atļauja. ToString()); Rezultāts:Izveidot
3. padoms: pievienojiet tagu [FlagsAttribute]
Permissionspermission=Atļaujas.Nav; atļauja=atļauja| Atļaujas.Izveidot; MessageBox.Show(atļauja. ToString()); Rezultāts:Create([FlagsAttribute] neietekmē rezultātu)
atļauja=atļauja| Atļaujas.Lasīt; MessageBox.Show(atļauja. ToString()); Rezultāts: 3 ([FlagsAttribute] nav pievienots) Rezultāts:Izveidot,Lasīt (pievienot [FlagsAttribute])
4. padoms: noņemiet noteiktu atļaujas darbību no esošās atļaujas. (XOR un AND skaitļošanas lietojumprogrammas)
Permissionspermission=Atļaujas.Nav; atļauja=atļauja| Atļaujas.Izveidot; MessageBox.Show(atļauja. ToString()); Rezultāts:Izveidot
atļauja=atļauja| Atļaujas.Lasīt; atļauja=atļauja| Atļaujas.Atjaunināt; MessageBox.Show(atļauja. ToString()); Rezultāts:Izveidot,Lasīt,Atjaunināt
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(atļauja. ToString()); Rezultāts:Izveidot,Atjaunināt
Padoms 5: Nosakiet, vai jums ir noteikta atļauja pašreizējā atļaujā (AND operācijā)
Permissionspermission=Atļaujas.Nav; atļauja=atļauja| Atļaujas.Izveidot; MessageBox.Show(atļauja. ToString()); Rezultāts:Izveidot
atļauja=atļauja| Atļaujas.Lasīt; atļauja=atļauja| Atļaujas.Atjaunināt; MessageBox.Show(atļauja. ToString()); Rezultāts:Izveidot,Lasīt,Atjaunināt
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(atļauja. ToString()); Rezultāts:Izveidot,Atjaunināt
boolIsCreatable=false; if((permission&Permissions.Create)==Permissions.Create)
{ IsCreatable=true;
} citādi
{ IsCreatable=false;
} MessageBox.Show(IsCreatable.ToString()); Rezultāts:True
|