Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 24485|Отговор: 3

[Източник] C# Enum Simple Permission Design използва свойството FlagsAttribute

[Копирай линк]
Публикувано в 22.04.2019 г. 14:30:51 ч. | | | |
В C# можете да извършвате логически операции върху цели обекти по битове. Значението на логическата операция по бит е, че всеки бит от обекта, който ще се оперира, се взема последователно, а логическият резултат от всеки бит е всеки бит от стойността на резултата. Битовите логически оператори, поддържани от C#, са показани на следващата фигура:



Основен дизайн на разрешения:

<summary>
///權限列舉
</summary>
[Атрибут на флагове]
publicenumPermissions
{
Описание ("Не е конфигурирано")]
Няма=0,
[Описание("Създаване")]
Създай=1,
[Описание("Прочетено")]
Read=2,
[Описание("Актуализация")]
Актуализация=4,
[Описание("Изтриване")]
Изтрий=8,
[Описание("Всички характеристики")]
All=Създавай| Прочетете| Актуализация| Изтрий
}



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


Съвет 2: Добавете ново действие за разрешение към съществуващото разрешение. (Операционна операция)

Permissionspermission=Permissions.None;
разрешение=разрешение| Разрешения. Създаване;
MessageBox.Show(permission. ToString());
Резултат: Създаване

Съвет 3: Добавете таг [FlagsAttribute]

Permissionspermission=Permissions.None;
разрешение=разрешение| Разрешения. Създаване;
MessageBox.Show(permission. ToString());
Result:Create([FlagsAttribute] не влияе на резултата)

разрешение=разрешение| Разрешения. Прочетете;
MessageBox.Show(permission. ToString());
Резултат: 3 ([FlagsAttribute] не е добавен)
Result:Create,Read (добави [FlagsAttribute])


Съвет 4: Премахнете определено действие за разрешение от съществуващото разрешение. (XOR и И компютърни приложения)

Permissionspermission=Permissions.None;
разрешение=разрешение| Разрешения. Създаване;
MessageBox.Show(permission. ToString());
Резултат: Създаване

разрешение=разрешение| Разрешения. Прочетете;
разрешение=разрешение| Разрешения.Актуализация;
MessageBox.Show(permission. ToString());
Резултат:Създавай, Прочети, Актуализирай

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(permission. ToString());
Резултат:Създавай, Обнови


Съвет 5: Определете дали имате определено разрешение в текущото разрешение (И операцията)

Permissionspermission=Permissions.None;
разрешение=разрешение| Разрешения. Създаване;
MessageBox.Show(permission. ToString());
Резултат: Създаване

разрешение=разрешение| Разрешения. Прочетете;
разрешение=разрешение| Разрешения.Актуализация;
MessageBox.Show(permission. ToString());
Резултат:Създавай, Прочети, Актуализирай

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(permission. ToString());
Резултат:Създавай, Обнови

boolIsCreatable=false;
if((permission&Permissions.Create)==Permissions.Create)
{
IsCreatable=true;
}
Друго
{
IsCreatable=false;
}
MessageBox.Show(IsCreatable.ToString());
Резултат: Вярно

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







Предишен:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
Следващ:Приликите и разликите между виртуалния и (абстрактния) абстрактен и интерфейс в C#...
Публикувано в 23.04.2019 г. 8:28:32 ч. |
Обсъждайте внимателно и се подобрявайте заедно! - Вт 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# Enum тип операция разширение клас
https://www.itsvse.com/thread-7286-1-1.html
(Източник: Architect_Programmer)
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com