W C# możesz wykonywać operacje logiczne na obiektach całkowitoliczbowych według bitów. Znaczenie operacji logicznej według bitu polega na tym, że każdy bit obiektu do wykonania jest przyjmowany po kolei, a wynik operacji logicznej każdego bitu to każdy bit wartości wyniku. Operatory bitowe logiczne obsługiwane przez C# przedstawiono na następującym rysunku:
Podstawowy projekt uprawnień:
<summary>
///權限列舉 </summary> [Atrybut flagi] publicenumZezwolenia
{ Opis("Nie skonfigurowany")] Żadny=0, [Opis ("Create")] create=1, [Opis ("Czytaj")] Read=2, [Opis ("Aktualizacja")] Aktualizacja=4, [Opis ("Usuń")] delete=8, [Opis ("Wszystkie cechy")] Wszystko=Stwórz| Przeczytaj| Aktualizacja| Usuń
}
Technika 1: Użyj wartości potęgowej 2 jako wartości enumeracyjnej dla przyszłych operacji bitowych (&AND, |LUB, ^XOR).
Wskazówka 2: Dodaj nową akcję uprawnień do istniejącego uprawnień. (Operacja operacyjna)
Permissionspermission=Permissions.None; permission=permission| Permissions.Create; MessageBox.Show(permission. ToString()); Wynik: Stwórz
Wskazówka 3: Dodaj tag [FlagsAttribute]
Permissionspermission=Permissions.None; permission=permission| Permissions.Create; MessageBox.Show(permission. ToString()); Wynik: Create([FlagsAttribute] nie wpływa na wynik)
permission=permission| Permissions.Read; MessageBox.Show(permission. ToString()); Wynik: 3 ([FlagsAttribute] nie dodano) Wynik: Tworzyć, Czytać (dodaj [FlagsAttribute])
Wskazówka 4: Usuń określoną akcję uprawnień z istniejącego zezwolenia. (Aplikacje komputerowe XOR i AND)
Permissionspermission=Permissions.None; permission=permission| Permissions.Create; MessageBox.Show(permission. ToString()); Wynik: Stwórz
permission=permission| Permissions.Read; permission=permission| Permissions.Update; MessageBox.Show(permission. ToString()); Wynik: Twórz, Czytaj, Aktualizuj
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(permission. ToString()); Wynik: Twórz, Aktualizuj
Wskazówka 5: Sprawdź, czy masz określone uprawnienia w aktualnym (I operacji)
Permissionspermission=Permissions.None; permission=permission| Permissions.Create; MessageBox.Show(permission. ToString()); Wynik: Stwórz
permission=permission| Permissions.Read; permission=permission| Permissions.Update; MessageBox.Show(permission. ToString()); Wynik: Twórz, Czytaj, Aktualizuj
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(permission. ToString()); Wynik: Twórz, Aktualizuj
boolIsCreatable=false; if((permission&Permissions.Create)==Permissions.Create)
{ IsCreatable=true;
} else
{ IsCreateatable=false;
} MessageBox.Show(IsCreatable.ToString()); Wynik: Prawdziwy
|