.NET 4.x Какой оператор нужен? - C#

Узнай цену своей работы

Формулировка задачи:

У меня есть
enum S:short
{
  User=1
  Admin=2
  Operator=4
}
И разные битовые вариации 1 - User 2 - Admin 3 - User | Admin 4 - Operator 5 - User | Operator 6 - Admin | Operator 7 - User | Admin | Operator Как сделать так если У нас стоит вариация 3 а к нам долбится 1 или 2 мы его пропускали. Если стоит 2 мы не пропускали 1 но пропускали 2 ИТД Как бы контроллер прав доступа. Я не очень силен в бинарных операторах и бинарной логике. Но думаю что так сделать можно. Ведь например в тех же атрибутах можно применять оператор | для наложения ограничений

Решение задачи: «.NET 4.x Какой оператор нужен?»

textual
Листинг программы
            S AccessRigths = S.Admin;
 
            var user = new User() { Type = S.User };
            var op = new User() { Type = S.Operator };
            var admin = new User() { Type = S.Admin };
 
            if ( (AccessRigths & user.Type) == 0 )
                Console.WriteLine( "user denied" );
            if ( (AccessRigths & op.Type) == 0 )
                Console.WriteLine( "op denied" );
            if ( (AccessRigths & admin.Type) == 0 )
                Console.WriteLine( "admin denied" );
 
            Console.ReadKey();

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы