Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 24485|Atbildi: 3

[Avots] C# Enum vienkāršā atļauju noformējumā tiek izmantots rekvizīts FlagsAttribute

[Kopēt saiti]
Publicēts 22.04.2019 14:30:51 | | | |
C# jūs varat veikt loģiskas darbības ar veseliem objektiem pa bitiem. Loģiskās operācijas ar bitu nozīme ir tāda, ka katrs darbināmā objekta bits tiek ņemts pēc kārtas, un katra bita loģiskās operācijas rezultāts ir katrs rezultāta vērtības bits. C# atbalstītie bitu loģikas operatori ir parādīti šajā attēlā:



Pamata atļaujas noformējums:

<summary>
///權限列舉
</summary>
[Karogu atribūts]
publicenumAtļaujas
{
Description("Nav konfigurēts")]
Nav=0,
[Apraksts ("Izveidot")]
Izveidot=1,
[Apraksts ("Lasīt")]
Lasīt = 2,
[Apraksts ("Atjauninājums")]
Atjauninājums=4,
[Apraksts ("Dzēst")]
Dzēst=8,
[Apraksts ("Visas funkcijas")]
Visi=Izveidot| Lasīt | Atjaunināt | Dzēst
}



1. paņēmiens: izmantojiet jaudas vērtību 2 kā uzskaitījuma vērtību turpmākām bitu operācijām (&AND, |OR, ^XOR).


2. padoms: pievienojiet jaunu atļaujas darbību esošajai atļaujai. (VAI operācija)

Permissionspermission=Atļaujas.Nav;
atļauja=atļauja| Atļaujas.Izveidot;
MessageBox.Show(atļauja. ToString());
Rezultāts:Izveidot

3. padoms: pievienojiet tagu [FlagsAttribute]

Permissionspermission=Atļaujas.Nav;
atļauja=atļauja| Atļaujas.Izveidot;
MessageBox.Show(atļauja. ToString());
Rezultāts:Create([FlagsAttribute] neietekmē rezultātu)

atļauja=atļauja| Atļaujas.Lasīt;
MessageBox.Show(atļauja. ToString());
Rezultāts: 3 ([FlagsAttribute] nav pievienots)
Rezultāts:Izveidot,Lasīt (pievienot [FlagsAttribute])


4. padoms: noņemiet noteiktu atļaujas darbību no esošās atļaujas. (XOR un AND skaitļošanas lietojumprogrammas)

Permissionspermission=Atļaujas.Nav;
atļauja=atļauja| Atļaujas.Izveidot;
MessageBox.Show(atļauja. ToString());
Rezultāts:Izveidot

atļauja=atļauja| Atļaujas.Lasīt;
atļauja=atļauja| Atļaujas.Atjaunināt;
MessageBox.Show(atļauja. ToString());
Rezultāts:Izveidot,Lasīt,Atjaunināt

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(atļauja. ToString());
Rezultāts:Izveidot,Atjaunināt


Padoms 5: Nosakiet, vai jums ir noteikta atļauja pašreizējā atļaujā (AND operācijā)

Permissionspermission=Atļaujas.Nav;
atļauja=atļauja| Atļaujas.Izveidot;
MessageBox.Show(atļauja. ToString());
Rezultāts:Izveidot

atļauja=atļauja| Atļaujas.Lasīt;
atļauja=atļauja| Atļaujas.Atjaunināt;
MessageBox.Show(atļauja. ToString());
Rezultāts:Izveidot,Lasīt,Atjaunināt

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(atļauja. ToString());
Rezultāts:Izveidot,Atjaunināt

boolIsCreatable=false;
if((permission&Permissions.Create)==Permissions.Create)
{
IsCreatable=true;
}
citādi
{
IsCreatable=false;
}
MessageBox.Show(IsCreatable.ToString());
Rezultāts:True

C# uzskaitījumi izmanto līdzekli Flags, kur vienā uzskaitījuma mainīgajā tiek saglabātas vairākas vērtības
https://www.itsvse.com/thread-4661-1-1.html
(Avots: Architect_Programmer)







Iepriekšējo:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
Nākamo:Līdzības un atšķirības starp virtuālo un (abstraktu) abstraktu un saskarni C#...
Publicēts 23.04.2019 08:28:32 |
Rūpīgi pārrunājiet un pilnveidojiet kopā! - Tue Apr 23 2019 08:28:32 GMT+0800 (Ķīnas standarta laiks)
Publicēts 11.11.2019 09:49:58 |
Kā iegūt vairākatlases uzskaitījuma aprakstu?
 Saimnieks| Publicēts 11.11.2019 11:00:19 |
Zilas debesis un balti mākoņi Publicēts 2019-11-11 09:49
Kā iegūt vairākatlases uzskaitījuma aprakstu?

Lūdzu, skatiet zemāk esošo rakstu

C# Enum enum tipa darbības paplašinājuma klase
https://www.itsvse.com/thread-7286-1-1.html
(Avots: Architect_Programmer)
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com