csharp / expert
Snippet
Bitweise Berechtigungsmaskierung für Zugriffskontrolle
Für Hochleistungs-Sicherheitssysteme ermöglicht die Verwendung bitweiser Operationen auf Enums mit dem [Flags]-Attribut eine extrem schnelle Berechtigungsprüfung und speichereffiziente Speicherung komplexer Zugriffsrechte.
snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Flags]enum Permissions : uint {None = 0,Read = 1 << 0,Write = 1 << 1,Delete = 1 << 2,Admin = Read | Write | Delete}public static class SecurityManager {public static bool HasAccess(Permissions userPerms, Permissions required) =>(userPerms & required) == required;public static Permissions Revoke(Permissions current, Permissions toRemove) =>current & ~toRemove;}
Erklärung
1
1 << 1
Verwendet den Linksshift-Operator, um jeder Berechtigungsstufe eindeutige Bitpositionen zuzuweisen.
2
current & ~toRemove
Kombiniert bitweises UND mit bitweisem NICHT (Komplement), um spezifische Bits chirurgisch aus der Maske zu entfernen.