Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 24485|Antwort: 3

[Quelle] C# Enum Simple Permission Design verwendet die FlagsAttribut-Eigenschaft

[Link kopieren]
Veröffentlicht am 22.04.2019 14:30:51 | | | |
In C# kann man logische Operationen auf ganzzahligen Objekten bitweise ausführen. Die Bedeutung der logischen Operation per Bit ist, dass jedes Bit des zu bedienenden Objekts nacheinander genommen wird und das logische Operationsergebnis jedes Bit jedes Bit des Ergebniswerts ist. Die von C# unterstützten Bitlogikoperatoren sind in der folgenden Abbildung dargestellt:



Grundlegendes Berechtigungsdesign:

<summary>
///權限列舉
</summary>
[FlagsAttribute]
publicenumGenehmigungen
{
Beschreibung ("Nicht konfiguriert")]
Kein=0,
[Beschreibung ("Erstellen")]
Create=1,
[Beschreibung ("Lesen")]
Read=2,
[Beschreibung ("Update")]
Update=4,
[Beschreibung ("Löschen")]
Delete=8,
[Beschreibung ("Alle Merkmale")]
All=Erstellen| Les| Aktualisierung| Löschen
}



Technik 1: Verwenden Sie den Leistungswert von 2 als Aufzählungswert für zukünftige Bitoperationen (&UND, |ODER, ^XOR).


Tipp 2: Füge der bestehenden Berechtigung eine neue Berechtigungsaktion hinzu. (OP-Operation)

Permissionspermissions=Permissions.None;
Erlaubnis=Erlaubnis| Permissions.Create;
MessageBox.Show(Berechtigung. ToString());
Ergebnis:Erstellen

Tipp 3: Fügen Sie das [FlagsAttribute]-Tag hinzu

Permissionspermissions=Permissions.None;
Erlaubnis=Erlaubnis| Permissions.Create;
MessageBox.Show(Berechtigung. ToString());
Result:Create([FlagsAttribute] beeinflusst das Ergebnis nicht)

Erlaubnis=Erlaubnis| Berechtigungen.Lesen;
MessageBox.Show(Berechtigung. ToString());
Ergebnis: 3 ([FlagsAttribute] nicht hinzugefügt)
Ergebnis:Erstellen,Lesen (fügen [FlagsAttribute] hinzu)


Tipp 4: Entferne eine bestimmte Berechtigungsaktion aus der bestehenden Berechtigung. (XOR- und AND-Computing-Anwendungen)

Permissionspermissions=Permissions.None;
Erlaubnis=Erlaubnis| Permissions.Create;
MessageBox.Show(Berechtigung. ToString());
Ergebnis:Erstellen

Erlaubnis=Erlaubnis| Berechtigungen.Lesen;
Erlaubnis=Erlaubnis| Permissions.Update;
MessageBox.Show(Berechtigung. ToString());
Ergebnis:Erstellen, Lesen, Aktualisieren

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(Berechtigung. ToString());
Ergebnis:Erstellen,Aktualisieren


Tipp 5: Bestimmen Sie, ob Sie eine bestimmte Erlaubnis für die aktuelle Genehmigung (AND-Operation) haben.

Permissionspermissions=Permissions.None;
Erlaubnis=Erlaubnis| Permissions.Create;
MessageBox.Show(Berechtigung. ToString());
Ergebnis:Erstellen

Erlaubnis=Erlaubnis| Berechtigungen.Lesen;
Erlaubnis=Erlaubnis| Permissions.Update;
MessageBox.Show(Berechtigung. ToString());
Ergebnis:Erstellen, Lesen, Aktualisieren

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(Berechtigung. ToString());
Ergebnis:Erstellen,Aktualisieren

boolIsCreatable=false;
if((permission&Permissions.Create)==Permissions.Create)
{
IsCreatable=wahr;
}
oder
{
IsCreatable=falsch;
}
MessageBox.Show(IsCreatable.ToString());
Ergebnis: Wahr

C#-Enums verwenden die Flags-Funktion, bei der mehrere Werte in einer Enumerationsvariable gespeichert werden
https://www.itsvse.com/thread-4661-1-1.html
(Quelle: Architect_Programmer)







Vorhergehend:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
Nächster:Die Ähnlichkeiten und Unterschiede zwischen virtueller und (abstrakter) Abstraktion und Schnittstelle in C#...
Veröffentlicht am 23.04.2019 08:28:32 |
Diskutiert sorgfältig und verbessert euch gemeinsam! - Di 23. Apr 2019 08:28:32 GMT+0800 (China Standardzeit)
Veröffentlicht am 11.11.2019 09:49:58 |
Wie bekomme ich eine Beschreibung für eine Mehrfachauswahl-Aufzählung?
 Vermieter| Veröffentlicht am 11.11.2019 11:00:19 |
Blauer Himmel und weiße Wolken Veröffentlicht am 11.11.2019 09:49
Wie bekomme ich eine Beschreibung für eine Mehrfachauswahl-Aufzählung?

Bitte beachten Sie den untenstehenden Artikel

C# Enum-Enum-Typ-Operationenerweiterungsklasse
https://www.itsvse.com/thread-7286-1-1.html
(Quelle: Architect_Programmer)
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com