Тестирование [Флаги] перечисление значений для единственного значения

Я предполагаю, что существуют приложения, записанные в C#, работающем быстро, а также существует больше C++ записанные приложения, работающие быстро (хорошо C++, просто более старый..., и возьмите UNIX также...)
- вопрос действительно - что является той вещью, пользователи и разработчики жалуются на...
ну, по моему скромному мнению, в случае C# у нас есть очень комфорт UI, очень хорошая иерархия библиотек и целая интерфейсная система CLI. В случае C++ у нас есть шаблоны, ATL, COM, MFC и целая хижина alreadyc записанный и рабочий код как OpenGL, DirectX и так далее... Разработчики жалуются на indeterminably повышенные вызовы GC в случае C# (означает прогоны программы быстро, и за одну секунду - удар! это застревает).
Для записи кода в C#, очень простом и быстром (чтобы не забыть, что также увеличивают шанс ошибок. В случае C++ разработчики жалуются на утечки памяти, - средство сокрушает, вызовы между DLLs, а также "ада DLL" - проблема с библиотеками поддержки и замены более новыми...
я думаю больше навыка, который Вы будете иметь на языке программирования, больше качества (и скорость) будет характерно для Вашего программного обеспечения.

8
задан Community 23 May 2017 в 12:17
поделиться

3 ответа

Вы можете преобразовать ее в int и используйте методы из Bit Twiddling Hacks , чтобы проверить, является ли это степень двойки.

int v = (int)enumValue;
return v != 0 && (v & (v - 1)) == 0;
17
ответ дан 5 December 2019 в 10:42
поделиться

Вы могли бы использовать Enum.GetValues ​​и считать только те элементы, которые являются степенью двойки (делится на 2 без остатка).

-1
ответ дан 5 December 2019 в 10:42
поделиться

Вы можете использовать комбинацию IsDefined и проверки степени 2.

0
ответ дан 5 December 2019 в 10:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: