powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Флаги и работа с ними (битовые операции)
3 сообщений из 3, страница 1 из 1
Флаги и работа с ними (битовые операции)
    #40130705
ughunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Задача на первый взгляд показалась простой, но...
Суть такая:
Есть перечисление декарированное атрибутом [Flags]
Код: c#
1.
[Flags] public enum Cup { A = 1, B, C, D, E, F }



в приложении глобально определено следующее: var cup = A | B | D - это вообще все разрешенные модули приложения.
Предположим, что пользователь запрашивает:
функцию F1 для которой сказано exec if A | E - она выполнится
функцию F2 для которой сказано exec if A & B - она выполнится
функцию F3 для которой сказано exec if A & F - она не выполнится (в комбинации cup не разрешения на модуль F а для исполнения функции необходимо наличие А и F)

собственно в том и вопрос: как это реализовать?

Был такой вариант https://itecnote.com/tecnote/c-how-to-check-if-any-flags-of-a-flag-combination-are-set/] - не работает

Код: c#
1.
2.
3.
4.
5.
6.
7.
public static bool IsFlagSet<T>(this T value, T flag) where T : struct
        {
            CheckIsEnum<T>(true);
            var lValue = Convert.ToInt64(value);
            var lFlag = Convert.ToInt64(flag);
            return (lValue & lFlag) != 0;
        }



тоже не работает.
Помогите разобраться.
...
Рейтинг: 0 / 0
Флаги и работа с ними (битовые операции)
    #40130716
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для работы с битовыми флагами они должны иметь значения по степеням двойки 1, 2, 4, 8, 16...
...
Рейтинг: 0 / 0
Флаги и работа с ними (битовые операции)
    #40130736
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня дочка 2-ичную систему проходила в 3 классе, не так давно. советую почитать, тогда вопросы как и почему сразу отпадут.
не знаю, выполняли ли они логические сложение\умножение, но думаю вы справитесь.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Флаги и работа с ними (битовые операции)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]