Все ли перечислимые константы являются константами? Получают ли они в свои значения во время компиляции или во время выполнения?
Они постоянны. Да, время компиляции.
Ссылка: http://msdn.microsoft.com/en-us/library/sbbt4032.aspx
Из вступления:
Ключевое слово enum используется для объявления перечисление, особый тип, который состоит из набора именованных констант вызывается список перечислителей.
В разделе «Надежное программирование»:
Так же, как и с любой константой, все ссылки на отдельные значения перечисление преобразуется в числовое литералы во время компиляции . Это может создать потенциальные проблемы с версиями, как описано в константах (программирование на C # Guide).
Перечисляемые значения являются константами, они не могут изменяться.
Их значения фиксируются во время компиляции.