Ну, во-первых, безопасность типов, по крайней мере, безопасность типов, которые не так легко обойти. Например, используя перечисляемое значение, я могу создать прототип функции, такой как
void Foo (значение SomeEnum);
В то время как с вашим статическим классом мне пришлось бы принимать параметр int. Конечно, вы можете отказаться от безопасности типов, но она проще в использовании и делает ее более очевидной, а также вы можете легче выполнять преобразования. Кроме того, перечисления дают автоматически увеличиваемые значения, симпатичную поддержку печати в отладчике, связывают преимущества с элементами управления, такими как сетка свойств. Вы поняли.