В последнее время часто приходится работать с enum.



Многим известно, что enum это тип значения, определённый набором именованных констант, в каких случаях его удобно использовать и так далее.



Но сегодня хочется рассказать о хорошей, как мне кажется, практике проектирования перечисления.



Создавая новое перечисление, старайтесь предоставлять значение по умолчанию.



Иначе default(TEnum) может вернуть первое значение из перечисления, что может приводить к логическим несостыковкам и смысловым ошибкам.



Конечно, так надо делать только в соответствии с описываемой предметной областью.

Такое значение может называться None, Default или Unknown.



Такая структура enum позволит описать, как работать с вашим пользовательским типом данных.