Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 24485|Risposta: 3

[Fonte] C# Enum Simple Permission Design utilizza la proprietà FlagsAttribute

[Copiato link]
Pubblicato su 22/04/2019 14:30:51 | | | |
In C#, puoi eseguire operazioni logiche su oggetti interi per bit. Il significato di operazione logica per bit è che ogni bit dell'oggetto da operare viene preso a turno, e il risultato dell'operazione logica di ogni bit è ciascun bit del valore risultato. Gli operatori di logica a bit supportati da C# sono mostrati nella figura seguente:



Progettazione base dei permessi:

<summary>
///權限列舉
</summary>
[BandiereAttributo]
publicenumPermessi
{
Descrizione("Non configurato")]
Nessuno=0,
[Descrizione("Crea")]
Crea=1,
[Descrizione("Letto")]
Lettura=2,
[Descrizione("Aggiornamento")]
Aggiornamento=4,
[Descrizione("Elimina")]
Delete=8,
[Descrizione("Tutte le Caratteristiche")]
Tutti=Crea| Read| Aggiornamento| Elimina
}



Tecnica 1: Usa il valore di potenza di 2 come valore di enumerazione per le operazioni future sui bit (&AND, |OR, ^XOR).


Consiglio 2: Aggiungi una nuova azione di permesso al permesso esistente. (Operazione OR)

Permessipermissione=Permessi.Nessuno;
permesso=permesso| Permessi.Crea;
MessaggioBox.Mostra(permesso. ToString());
Risultato: Create

Consiglio 3: Aggiungi il tag [FlagsAttribute]

Permessipermissione=Permessi.Nessuno;
permesso=permesso| Permessi.Crea;
MessaggioBox.Mostra(permesso. ToString());
Risultato:Crea([FlagsAttribute] non influisce sul risultato)

permesso=permesso| Permessi.Leggi;
MessaggioBox.Mostra(permesso. ToString());
Risultato: 3 ([FlagsAttribute] non aggiunto)
Risultato:Crea, Leggi (aggiungi [FlagsAttribute])


Consiglio 4: Rimuovi una certa azione di permesso dal permesso esistente. (applicazioni di calcolo XOR e AND)

Permessipermissione=Permessi.Nessuno;
permesso=permesso| Permessi.Crea;
MessaggioBox.Mostra(permesso. ToString());
Risultato: Create

permesso=permesso| Permessi.Leggi;
permesso=permesso| Permessi.Aggiornamento;
MessaggioBox.Mostra(permesso. ToString());
Risultato: Crea, Leggi, Aggiorna

permission=(permission&(Permissions.All^Permissions.Read));
MessaggioBox.Mostra(permesso. ToString());
Risultato: Crea, Aggiorna


Consiglio 5: Verifica se hai un certo permesso nell'operazione E nel permesso attuale (E operazione)

Permessipermissione=Permessi.Nessuno;
permesso=permesso| Permessi.Crea;
MessaggioBox.Mostra(permesso. ToString());
Risultato: Create

permesso=permesso| Permessi.Leggi;
permesso=permesso| Permessi.Aggiornamento;
MessaggioBox.Mostra(permesso. ToString());
Risultato: Crea, Leggi, Aggiorna

permission=(permission&(Permissions.All^Permissions.Read));
MessaggioBox.Mostra(permesso. ToString());
Risultato: Crea, Aggiorna

boolIsCreatable=falso;
if((permission&Permessi.Crea)==Permessi.Crea)
{
IsCreatable=vero;
}
altrimenti
{
IsCreatabile=falso;
}
MessaggiBox.Mostra(IsCreatable.ToString());
Risultato: Vero

Gli enum C# utilizzano la funzione Flag, dove più valori sono memorizzati in una sola variabile di enumerazione
https://www.itsvse.com/thread-4661-1-1.html
(Fonte: Architect_Programmer)







Precedente:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
Prossimo:Le somiglianze e le differenze tra abstracth virtuale e (astratto) e interfaccia in C#...
Pubblicato su 23/04/2019 08:28:32 |
Discutite attentamente e migliorate insieme! - Mar 23 Apr 2019 08:28:32 GMT+0800 (ora standard cinese)
Pubblicato su 11/11/2019 09:49:58 |
Come posso ottenere una descrizione per un'enumerazione multi-selezione?
 Padrone di casa| Pubblicato su 11/11/2019 11:00:19 |
Cielo azzurro e nuvole bianche Pubblicato il 11-11-2019 09:49
Come posso ottenere una descrizione per un'enumerazione multi-selezione?

Si prega di fare riferimento all'articolo qui sotto

C# Classe di estensione di operazione enum
https://www.itsvse.com/thread-7286-1-1.html
(Fonte: Architect_Programmer)
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com