V C# můžete provádět logické operace na celočíselných objektech podle bitů. Význam logické operace podle bitu spočívá v tom, že každý bit objektu, který má být operován, je postupně brán a výsledek logické operace každého bitu je každý bit výsledné hodnoty. Bitové logické operátory podporované C# jsou zobrazeny na následujícím obrázku:
Základní návrh oprávnění:
<summary>
///權限列舉 </summary> [FlagsAttribute] publicenumPovolení
{ Popis("Není konfigurován")] Žádný=0, [Popis ("Vytvoř")] Create=1, [Popis ("Číst")] Read=2, [Popis ("Aktualizace")] Aktualizace=4, [Popis ("Smazat")] delete=8, [Popis ("Všechny vlastnosti")] Všechny=Vytvořit| Čti| Aktualizace| Smazat
}
Technika 1: Použijte mocovou hodnotu 2 jako enumerační hodnotu pro budoucí bitové operace (&AND, |OR, ^XOR).
Tip 2: Přidejte novou akci oprávnění ke stávajícímu oprávnění. (Operační sál)
Permissionspermission=Permissions.None; povolení=povolení| Permissions.Create; MessageBox.Show(permission. ToString()); Výsledek:Vytvořit
Tip 3: Přidejte tag [FlagsAttribute]
Permissionspermission=Permissions.None; povolení=povolení| Permissions.Create; MessageBox.Show(permission. ToString()); Výsledek:Vytvořit([FlagsAttribute] neovlivňuje výsledek)
povolení=povolení| Permissions.Read; MessageBox.Show(permission. ToString()); Výsledek: 3 ([FlagsAttribute] nepřidán) Výsledek:Vytvořit, Přečíst (přidat [FlagsAttribute])
Tip 4: Odstraňte určitou akci oprávnění z existujícího oprávnění. (Aplikace XOR a AND)
Permissionspermission=Permissions.None; povolení=povolení| Permissions.Create; MessageBox.Show(permission. ToString()); Výsledek:Vytvořit
povolení=povolení| Permissions.Read; povolení=povolení| Permissions.Update; MessageBox.Show(permission. ToString()); Výsledek:Vytvořit, Číst, Aktualizovat
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(permission. ToString()); Výsledek:Vytvořit,Aktualizovat
Tip 5: Zjistěte, zda máte určité oprávnění v aktuálním oprávnění (A provozu)
Permissionspermission=Permissions.None; povolení=povolení| Permissions.Create; MessageBox.Show(permission. ToString()); Výsledek:Vytvořit
povolení=povolení| Permissions.Read; povolení=povolení| Permissions.Update; MessageBox.Show(permission. ToString()); Výsledek:Vytvořit, Číst, Aktualizovat
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(permission. ToString()); Výsledek:Vytvořit,Aktualizovat
boolIsCreatable=false; if((permission&Permissions.Create)==Permissions.Create)
{ IsCreatable=true;
} jinak
{ IsCreatable=false;
} MessageBox.Show(IsCreatable.ToString()); Výsledek: Pravda
|