Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 24485|Відповідь: 3

[Джерело] C# Enum Simple Permission Design використовує властивість FlagsAttribute

[Копіювати посилання]
Опубліковано 22.04.2019 14:30:51 | | | |
У C# можна виконувати логічні операції над цілими об'єктами за бітами. Значення логічної операції за бітом полягає в тому, що кожен біт об'єкта, який оперується, бере по черзі, а логічний результат кожного біта — це кожен біт результату. Оператори бітової логіки, підтримувані C#, показані на наступному рисунку:



Базове проєктування дозволів:

<summary>
///權限列舉
</summary>
[Атрибут прапорів]
publicenumPermissions
{
Опис («Не налаштовано»)]
Немає=0,
[Опис («Створити»)]
Create=1,
[Опис ("Читати")]
Read=2,
[Опис ("Оновлення")]
Оновлення=4,
[Опис («Видалити»)]
Видалити=8,
[Опис («Усі функції»)]
All=Створити| Читати| Оновлення| Видалити
}



Техніка 1: Використовувати значення ступеня 2 як перелік для майбутніх бітових операцій (&AND, |OR, ^XOR).


Порада 2: Додайте нову дію дозволу до існуючого дозволу. (Операційна операція)

Permissionspermissionallow=Permissions.None;
дозвіл=дозвіл| Дозволи. Створити;
MessageBox.Show(permission. ToString());
Результат:Створити

Порада 3: Додайте тег [FlagsAttribute]

Permissionspermissionallow=Permissions.None;
дозвіл=дозвіл| Дозволи. Створити;
MessageBox.Show(permission. ToString());
Result:Create([FlagsAttribute] не впливає на результат)

дозвіл=дозвіл| Дозволи. Читайте;
MessageBox.Show(permission. ToString());
Результат: 3 ([Атрибут прапорів] не додано)
Result:Create,Read (додати [FlagsAttribute])


Порада 4: Видаліть певну дію дозволу з існуючого дозволу. (XOR та AND комп'ютерні застосування)

Permissionspermissionallow=Permissions.None;
дозвіл=дозвіл| Дозволи. Створити;
MessageBox.Show(permission. ToString());
Результат:Створити

дозвіл=дозвіл| Дозволи. Читайте;
дозвіл=дозвіл| Authors.Update;
MessageBox.Show(permission. ToString());
Результат: Створити, Прочитати, Оновити

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(permission. ToString());
Результат:Create,Update


Порада 5: Визначте, чи маєте ви певний дозвіл у поточному дозволі (І в операції)

Permissionspermissionallow=Permissions.None;
дозвіл=дозвіл| Дозволи. Створити;
MessageBox.Show(permission. ToString());
Результат:Створити

дозвіл=дозвіл| Дозволи. Читайте;
дозвіл=дозвіл| Authors.Update;
MessageBox.Show(permission. ToString());
Результат: Створити, Прочитати, Оновити

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(permission. ToString());
Результат:Create,Update

boolIsCreatable=false;
if((permission&Permissions.Create)==Permissions.Createate)
{
IsCreaable=true;
}
інше
{
IsCreatable=хибне;
}
MessageBox.Show(IsCreatable.ToString());
Результат: Правда

Enums C# використовують функцію Flags, де кілька значень зберігаються в одній перелічувальній змінній
https://www.itsvse.com/thread-4661-1-1.html
(Джерело: Architect_Programmer)







Попередній:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
Наступний:Подібності та відмінності між віртуальним і (абстрактним) абстрактним та інтерфейсом у C#...
Опубліковано 23.04.2019 08:28:32 |
Обговорюйте уважно і розвивайтеся разом! - Вт 23 квітня 2019 08:28:32 GMT+0800 (китайський стандартний час)
Опубліковано 11.11.2019 09:49:58 |
Як отримати опис багатовибіркового перерахування?
 Орендодавець| Опубліковано 11.11.2019 11:00:19 |
Блакитне небо та білі хмари Опубліковано 2019-11-11 09:49
Як отримати опис багатовибіркового перерахування?

Будь ласка, зверніться до статті нижче

Клас розширення операції типу C# enum enum
https://www.itsvse.com/thread-7286-1-1.html
(Джерело: Architect_Programmer)
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com