![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| ДобренькийПапаша |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 14.1.2006 Где: г.Москва Репутация: нет Всего: 7 |
Через метод получаю некий код, представленный как int.
Есть перечисление c атрибутом Flags, каждому имени в перечислении соответствует конкретное int значение. Мне нужно найти пересечение пунктов перечисления, которые дают в результате тот самый, полученный в начале через метод код (он является пересечением каких-то значений из перечисления).
Нужно найти то, из каких пунктов перечисления (их пересечение) состоит полученный через метод код и вывести одно за другим эти пункты перечисления. Например, если я через метод получаю значение 272, то этот код означает пересечение пунктов CardCaptureError и CardPreEmpty, т.е. 256 | 16. Надо вывести на консоль соотвественно CardCaptureError и CardPreEmpty. -------------------- Меня зовут Себастьян Парейра, торговец чёрным деревом. |
|||
|
||||
| Ky7m |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 8.4.2008 Репутация: 1 Всего: 2 |
Ну можно на возвращаемый результат накладывать маску и смотреть наличие определенного значения.
То есть 272 = 0000 0001 0001 0000 16 = 0000 0000 0001 0000 256 = 0000 0001 0000 0000 Побитовое И вернет 1 если есть пересечение. |
|||
|
||||
| -Mikle- |
|
||||||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 17 Всего: 59 |
Просто приведи тип int к типу ReturnCode.
Проверить наличие флага можно так:
Получить список выставленных флагов:
Чтобы упростить себе жизнь, если ты это часто используешь, напиши extension-метод для Enum и используй с любым перечислением. -------------------- Если тебе плюют в спину, значит ты впереди... |
||||||
|
|||||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |