В 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()); Резултат: Вярно
|