| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > проверка флага в enum |
| Автор: nmn 26.1.2009, 22:28 | ||
| проблема с проверкой флагов в перечислениях, вернее в удобстве такой проверки поэтому хочется сделать что то вроде
собственно проблема, что нужно вместо троеточия, чтобы работало со всеми перечислениями? |
| Автор: Anyone 26.1.2009, 22:45 |
| Возможно, object |
| Автор: nmn 26.1.2009, 22:52 | ||
не дописал, должно быть так
|
| Автор: mihryak 26.1.2009, 23:01 | ||
а интами разве не катит?
|
| Автор: Anyone 26.1.2009, 23:04 |
| Я так понял, flag - это маска, то есть переменная целого типа и функция возвратит true тогда и только тогда, когда все биты с значением 1 источника и маски совпадут, при этом где у маски ноль - у источника может быть что годно. В таком случае src должен иметь такой же тип. Или я что-то не так понял? |
| Автор: nmn 26.1.2009, 23:10 | ||||
приводить типы, оно то конечно можно и наверное так и буду делать если не найдется обходной вариант идеально было бы через обобщения, но компилятору не нравится битовая операция :( |
| Автор: mihryak 26.1.2009, 23:19 | ||||
можно и с обобщениями, через небольшой хак в обмен на строгую типизацию
|
| Автор: diadiavova 26.1.2009, 23:21 | ||
Я что-то вообще не пойму, почему это вдруг должно заработать. Я бы вместо этого попробовал сделать так
|
| Автор: diadiavova 26.1.2009, 23:38 |
| mihryak, Надо же, и правда работает |
| Автор: nmn 27.1.2009, 02:45 | ||||||
мда, уж лучше приводить к int сразу, чем пройти через проверки типов и все равно приводить |