Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 24485|Svar: 3

[Källa] C# Enum Simple Permission Design använder egenskapen FlagsAttribute

[Kopiera länk]
Publicerad på 2019-04-22 14:30:51 | | | |
I C# kan du utföra logiska operationer på heltalsobjekt per bit. Betydelsen av logisk operation per bit är att varje bit i objektet som ska opereras tas i tur och ordning, och det logiska operationsresultatet av varje bit är varje bit av resultatvärdet. Bitlogikoperatorerna som stöds av C# visas i följande figur:



Grundläggande behörighetsdesign:

<summary>
///權限列舉
</summary>
[FlaggaAttribut]
publicenumTillstånd
{
Beskrivning ("Ej konfigurerad")]
Ingen=0,
[Beskrivning("Skapa")]
Skapa=1,
[Beskrivning ("Läs")]
Read=2,
[Beskrivning ("Uppdatering")]
Uppdatering=4,
[Beskrivning ("Radera")]
Delete=8,
[Beskrivning ("Alla funktioner")]
Alla=Skapa| Läs| Uppdatering| Radera
}



Teknik 1: Använd effektvärdet 2 som uppräkningsvärde för framtida bitoperationer (&OCH, |ELLER, ^XOR).


Tips 2: Lägg till en ny behörighetsåtgärd till den befintliga behörigheten. (OR-operation)

Permissionspermission=Permissions.None;
tillstånd=tillstånd| Permissions.Create;
MessageBox.Show(permission. ToString());
Resultat:Skapa

Tips 3: Lägg till taggen [FlagsAttribute].

Permissionspermission=Permissions.None;
tillstånd=tillstånd| Permissions.Create;
MessageBox.Show(permission. ToString());
Result:Create([FlagsAttribute] påverkar inte resultatet)

tillstånd=tillstånd| Behörigheter.Läs
MessageBox.Show(permission. ToString());
Resultat: 3 ([FlagsAttribute] ej tillagd)
Resultat:Skapa,Läs (lägg till [FlagsAttribute])


Tips 4: Ta bort en viss behörighetsåtgärd från den befintliga behörigheten. (XOR och AND-datorapplikationer)

Permissionspermission=Permissions.None;
tillstånd=tillstånd| Permissions.Create;
MessageBox.Show(permission. ToString());
Resultat:Skapa

tillstånd=tillstånd| Behörigheter.Läs
tillstånd=tillstånd| Permissions.Update;
MessageBox.Show(permission. ToString());
Resultat:Skapa, Läsa, Uppdatera

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(permission. ToString());
Resultat:Skapa,Uppdatera


Tips 5: Ta reda på om du har en viss behörighet i den aktuella behörigheten (AND-operationen)

Permissionspermission=Permissions.None;
tillstånd=tillstånd| Permissions.Create;
MessageBox.Show(permission. ToString());
Resultat:Skapa

tillstånd=tillstånd| Behörigheter.Läs
tillstånd=tillstånd| Permissions.Update;
MessageBox.Show(permission. ToString());
Resultat:Skapa, Läsa, Uppdatera

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(permission. ToString());
Resultat:Skapa,Uppdatera

boolIsCreatable=false;
if((permission&Permissions.Create)==Permissions.Create)
{
IsCreatable=sann;
}
annars
{
IsCreatable=falsk;
}
MessageBox.Show(IsCreatable.ToString());
Resultat: Sant

C#-enums använder Flags-funktionen, där flera värden lagras i en och samma uppräkningsvariabel
https://www.itsvse.com/thread-4661-1-1.html
(Källa: Architect_Programmer)







Föregående:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
Nästa:Likheterna och skillnaderna mellan virtuell och (abstrakt) abstraktion och gränssnitt i C#...
Publicerad på 2019-04-23 08:28:32 |
Diskutera noggrant och förbättra tillsammans! - Tis 23 apr 2019 08:28:32 GMT+0800 (Kinas standardtid)
Publicerad på 2019-11-11 09:49:58 |
Hur får jag en beskrivning för en flervalsuppräkning?
 Hyresvärd| Publicerad på 2019-11-11 11:00:19 |
Blå himmel och vita moln Publicerad den 2019-11-11 09:49
Hur får jag en beskrivning för en flervalsuppräkning?

Vänligen se artikeln nedan

C# Enum enum-typ operationsförlängningsklass
https://www.itsvse.com/thread-7286-1-1.html
(Källa: Architect_Programmer)
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com