Применяют ли на реальных проектах перечисления enum
? Если да, то в каких use-case? Я читал, что с данными типами в будущем могут появиться проблемы, связанные с управлением версиями (тут источник)
У меня есть класс ChessFigure
, у которого есть свойство Colour
. Хочу сделать перечисление "Black" и "White", но не уверен, что это нужно (альтернатива: свойство сделать типа bool
и переименовать его в IsWhite
).
UPD. Цель, которую я преследую - создать удобно поддерживаемую библиотеку классов.
Да, конечно используется. Например, в проекте, над которым я сейчас работаю, ровно 125 enum
'ов.
Из двух вариантов bool IsBlack
или enum PieceColor { White, Black }
второй вариант кажется мне более предпочтительным.
Например, вы не сможете при втором варианте случайно присвоить несвязанное булево значение: IsBlack = IsGameSaved
скомпилируется, а Color = IsGameSaved
— нет.
Кроме того, если у вас функция выглядит как
void MakeMove(bool isBlack) { ... }
то глядя на код MakeMove(true)
, нужно ещё вспомнить, что же означает это самое true
: белый цвет, чёрный, или вообще живого игрока в отличие от противостоящего ему искусственного интеллекта. С вызовом MakeMove(PieceColor.White)
вопросов не возникает.
Так что да, для удобства лучше использовать enum
'ы.
Например у Вас есть сущность товара в магазине. У него допустим есть ряд состояний :
В наличии.
Снят с продажи.
Возможна доставка.
В базе Вы определенно будете это хранить в виде tinyint
( 0,1,2). А на коде, отражать через enum, что очень сильно облегчает читаемость кода, вам не надо будет помнить что такое 1, а что такое 2.
Если ты роботаеш с Api и у тебя есть набор допустимых значений, удобно использовать enum. e.g.
Returns candlestick chart data. Required GET parameters are "currencyPair", "period" (candlestick period in seconds; valid values are 300, 900, 1800, 7200, 14400, and 86400).
internal enum Period
{
S300 = 300,
S900 = 900,
...
}
Удобние делать enum, что бы не делать лишних проверок
returnChartData(some arg, ..., Period perior){
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Помогите пожалуйста дописать js код, как зациклить вывод индекса массива, чтобы он начинался с "первого слова", а когда доходил до "третьего",...
Обычная почтовая рассылкаПользователь вводит свое имя и почту на сайте и ему приходят уведомления о новых новостях