Насколько я знаю, не существует одного специально для констант enum.Самое близкое, что вы могли бы получить, это, вероятно, «Поле», которое ограничивает использование членами поля класса или структуры (для которых константы Enum обрабатываются так же, как и для атрибутов).* Принимая объяснение «почему» из комментариев, константы Enum являются именно такими, и поэтому их значения и использования встроены непосредственно в IL .Поэтому объявление enum на самом деле не сильно отличается от создания статического определения класса со статическими членами-константами:
public static class MyEnum
{
public const int Value1 = 0;
public const int Value2 = 1;
public const int Value3 = 2;
public const int Value4 = 3;
}
... единственное отличие состоит в том, что оно происходит от System.Enum, который является типом значения вместобудучи ссылочным классом (вы не можете создать ни статическую, ни неконструктивную структуру).