Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 24485|Antwoord: 3

[Bron] C# Enum Simple Permission Design gebruikt de eigenschap FlagsAttribute

[Link kopiëren]
Geplaatst op 22-04-2019 14:30:51 | | | |
In C# kun je logische bewerkingen uitvoeren op gehele objecten per bit. De betekenis van logische bewerking per bit is dat elk bit van het te bedienen object op zijn beurt wordt genomen, en het logische operatieresultaat van elke bit elk bit van de resultaatwaarde is. De bitlogica-operatoren die door C# worden ondersteund, worden weergegeven in de volgende figuur:



Basisontwerp van toestemmingen:

<summary>
///權限列舉
</summary>
[VlaggenAttribuut]
publicenumToestemmingen
{
Beschrijving ("Niet geconfigureerd")]
Geen=0,
[Beschrijving ("Creëren")]
Create=1,
[Beschrijving("Lees")]
Read=2,
[Beschrijving ("Update")]
Update=4,
[Beschrijving("Verwijderen")]
Delete=8,
[Beschrijving ("Alle Kenmerken")]
All=Aanmaken| Lees| Update| Verwijderen
}



Techniek 1: Gebruik de machtwaarde van 2 als opsommingswaarde voor toekomstige bitoperaties (&AND, |OF, ^XOR).


Tip 2: Voeg een nieuwe toestemmingsactie toe aan de bestaande toestemming. (OK-operatie)

Permissionspermission=Permissions.None;
toestemming=toestemming| Permissions.Create;
MessageBox.Show(toestemming. ToString());
Resultaat:Aanmaken

Tip 3: Voeg de tag [FlagsAttribute] toe

Permissionspermission=Permissions.None;
toestemming=toestemming| Permissions.Create;
MessageBox.Show(toestemming. ToString());
Resultaat:Aanmaken([FlagsAttribute] beïnvloedt het resultaat niet)

toestemming=toestemming| Toestemmingen.Lezen;
MessageBox.Show(toestemming. ToString());
Resultaat: 3 ([FlagsAttribute] niet toegevoegd)
Resultaat:Aanmaken,Lees (voeg [FlagsAttribute] toe)


Tip 4: Verwijder een bepaalde toestemmingsactie uit de bestaande toestemming. (XOR en AND computing applicaties)

Permissionspermission=Permissions.None;
toestemming=toestemming| Permissions.Create;
MessageBox.Show(toestemming. ToString());
Resultaat:Aanmaken

toestemming=toestemming| Toestemmingen.Lezen;
toestemming=toestemming| Permissions.Update;
MessageBox.Show(toestemming. ToString());
Resultaat: Maken, Lezen, Bijwerken

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(toestemming. ToString());
Resultaat:Aanmaken,Bijwerken


Tip 5: Bepaal of je een bepaalde toestemming hebt voor de huidige toestemming (EN operatie)

Permissionspermission=Permissions.None;
toestemming=toestemming| Permissions.Create;
MessageBox.Show(toestemming. ToString());
Resultaat:Aanmaken

toestemming=toestemming| Toestemmingen.Lezen;
toestemming=toestemming| Permissions.Update;
MessageBox.Show(toestemming. ToString());
Resultaat: Maken, Lezen, Bijwerken

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(toestemming. ToString());
Resultaat:Aanmaken,Bijwerken

boolIsCreatable=false;
if((permission&Permissions.Create)==Permissions.Create)
{
IsCreatable=waar;
}
anders
{
IsCreatable=vals;
}
MessageBox.Show(IsCreatable.ToString());
Resultaat: Waar

C#-enums gebruiken de Flags-functie, waarbij meerdere waarden worden opgeslagen in één enumeratievariabele
https://www.itsvse.com/thread-4661-1-1.html
(Bron: Architect_Programmer)







Vorig:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
Volgend:De overeenkomsten en verschillen tussen virtuele en (abstracte) abstracte en interface in C#...
Geplaatst op 23-04-2019 08:28:32 |
Bespreek het zorgvuldig en verbeter samen! - di 23 apr 2019 08:28:32 GMT+0800 (China Standaardtijd)
Geplaatst op 11-11-2019 09:49:58 |
Hoe krijg ik een beschrijving voor een multi-select enumeratie?
 Huisbaas| Geplaatst op 11-11-2019 11:00:19 |
Blauwe lucht en witte wolken Geplaatst op 2019-11-11 09:49
Hoe krijg ik een beschrijving voor een multi-select enumeratie?

Zie het onderstaande artikel

C# Enum enum type operatie-uitbreidingsklasse
https://www.itsvse.com/thread-7286-1-1.html
(Bron: Architect_Programmer)
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com