Это очень важно, если вы собираетесь сохранить эти значения извне, например, в базе данных, и хотите отобразить их значения обратно в код.
Если явно не назначено, они будут установлены последовательно при компиляциивремя.
Например:
enum Something
{
Thingy,
Thangamijig,
Whatsit
}
Итак Thingy == 0
, Thanamijig == 1
, Whatsit == 2
Это перечисление используется и сохраняется в базе данныхв течение некоторого времени, а затем другой разработчик находит новое использование для Something
и изменяет его ... плохо:
enum Something
{
Whosits,
Thingy,
Thangamijig,
Whatsit
}
Сейчас Thingy == 1
, Thanamijig == 2
, Whatsit == 3
и вы нетбольше иметь правильное отображение.
Это всего лишь один случай, когда явное определение того, на что отображается каждое значение перечисления, может вызвать большую проблему.
определение перечисленияв MSDN
Базовым типом элементов перечисления по умолчанию является int.По умолчанию первый перечислитель имеет значение 0, а значение каждого последующего перечислителя увеличивается на 1. Например:
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
В этом перечислении Sat равен 0, Sun1, понедельник 2 и т. д.Перечислители могут иметь инициализаторы для переопределения значений по умолчанию.Например:
enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
В этом перечислении последовательность элементов должна начинаться с 1 вместо 0.