Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 24485|Απάντηση: 3

[Πηγή] Το C# Enum Simple Permission Design χρησιμοποιεί την ιδιότητα FlagsAttribute

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 22/4/2019 2:30:51 μ.μ. | | | |
Στη C#, μπορείτε να εκτελέσετε λογικές πράξεις σε ακέραια αντικείμενα ανά bit. Η έννοια της λογικής λειτουργίας με bit είναι ότι κάθε bit του αντικειμένου που πρόκειται να λειτουργήσει λαμβάνεται με τη σειρά και το αποτέλεσμα λογικής λειτουργίας κάθε bit είναι κάθε bit της τιμής του αποτελέσματος. Οι λογικοί τελεστές bit που υποστηρίζονται από τη C# φαίνονται στο παρακάτω σχήμα:



Βασικός σχεδιασμός άδειας:

<summary>
///權限列舉
</summary>
[Χαρακτηριστικό Flags]
publicenumPermissions
{
Description("Δεν έχει ρυθμιστεί")]
Κανένα=0,
[Περιγραφή("Δημιουργία")]
Δημιουργία=1,
[Περιγραφή("Ανάγνωση")]
read=2,
[Περιγραφή("Ενημέρωση")]
Ενημέρωση=4,
[Περιγραφή("Διαγραφή")]
Διαγραφή=8,
[Περιγραφή ("Όλα τα χαρακτηριστικά")]
Όλα=Δημιουργία| Διαβάστε| Ενημέρωση| Διαγραφή
}



Τεχνική 1: Χρησιμοποιήστε την τιμή ισχύος 2 ως τιμή απαρίθμησης για μελλοντικές λειτουργίες bit (&AND, |OR, ^XOR).


Συμβουλή 2: Προσθέστε μια νέα ενέργεια δικαιώματος στο υπάρχον δικαίωμα. (Ή Λειτουργία)

permissionspermission=Δικαιώματα.Κανένα;
permission=άδεια| Δικαιώματα.Δημιουργία;
MessageBox.Show(άδεια. ToString());
Αποτέλεσμα:Δημιουργία

Συμβουλή 3: Προσθέστε την ετικέτα [FlagsAttribute]

permissionspermission=Δικαιώματα.Κανένα;
permission=άδεια| Δικαιώματα.Δημιουργία;
MessageBox.Show(άδεια. ToString());
Result:Create([FlagsAttribute] δεν επηρεάζει το αποτέλεσμα)

permission=άδεια| Δικαιώματα.Διαβάστε;
MessageBox.Show(άδεια. ToString());
Αποτέλεσμα: 3 ([FlagsAttribute] δεν προστέθηκε)
Αποτέλεσμα:Δημιουργία,Ανάγνωση (προσθήκη [FlagsAttribute])


Συμβουλή 4: Καταργήστε μια συγκεκριμένη ενέργεια δικαιώματος από το υπάρχον δικαίωμα. (Υπολογιστικές εφαρμογές XOR και AND)

permissionspermission=Δικαιώματα.Κανένα;
permission=άδεια| Δικαιώματα.Δημιουργία;
MessageBox.Show(άδεια. ToString());
Αποτέλεσμα:Δημιουργία

permission=άδεια| Δικαιώματα.Διαβάστε;
permission=άδεια| Δικαιώματα.Ενημέρωση;
MessageBox.Show(άδεια. ToString());
Αποτέλεσμα:Δημιουργία,Ανάγνωση,Ενημέρωση

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(άδεια. ToString());
Αποτέλεσμα:Δημιουργία,Ενημέρωση


Συμβουλή 5: Προσδιορίστε εάν έχετε ένα συγκεκριμένο δικαίωμα στο τρέχον δικαίωμα (λειτουργία AND)

permissionspermission=Δικαιώματα.Κανένα;
permission=άδεια| Δικαιώματα.Δημιουργία;
MessageBox.Show(άδεια. ToString());
Αποτέλεσμα:Δημιουργία

permission=άδεια| Δικαιώματα.Διαβάστε;
permission=άδεια| Δικαιώματα.Ενημέρωση;
MessageBox.Show(άδεια. ToString());
Αποτέλεσμα:Δημιουργία,Ανάγνωση,Ενημέρωση

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(άδεια. ToString());
Αποτέλεσμα:Δημιουργία,Ενημέρωση

boolIsCreatable=false;
if((permission&Permissions.Create)==Permissions.Create)
{
IsCreatable=αληθές;
}
αλλιώς
{
IsCreatable=false;
}
MessageBox.Show(IsCreatable.ToString());
Αποτέλεσμα:True

Οι απαρίθμηση C# χρησιμοποιούν τη δυνατότητα Flags, όπου πολλές τιμές αποθηκεύονται σε μία μεταβλητή απαρίθμησης
https://www.itsvse.com/thread-4661-1-1.html
(Πηγή: Architect_Programmer)







Προηγούμενος:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
Επόμενος:Οι ομοιότητες και οι διαφορές μεταξύ εικονικής και (αφηρημένης) περίληψης και διεπαφής στη C#...
Δημοσιεύτηκε στις 23/4/2019 8:28:32 π.μ. |
Συζητήστε προσεκτικά και βελτιωθείτε μαζί! - Tue Apr 23, 2019 08:28:32 GMT+0800 (Χειμερινή ώρα Κίνας)
Δημοσιεύτηκε στις 11/11/2019 9:49:58 π.μ. |
Πώς μπορώ να λάβω μια περιγραφή για μια απαρίθμηση πολλαπλών επιλογών;
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 11/11/2019 11:00:19 π.μ. |
Γαλάζιος ουρανός και λευκά σύννεφα Δημοσιεύτηκε στις 2019-11-11 09:49
Πώς μπορώ να λάβω μια περιγραφή για μια απαρίθμηση πολλαπλών επιλογών;

Ανατρέξτε στο παρακάτω άρθρο

C# Κλάση επέκτασης λειτουργίας τύπου απαρίθμησης C#
https://www.itsvse.com/thread-7286-1-1.html
(Πηγή: Architect_Programmer)
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com