Надо бы прикрутить к CodeExceptions исключение для выброса, если значение енума невалидно.
Ну и, пользуясь случаем, хочу напомнить Sinix, что он обещал реализацию HasFlag для енумов правильную.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>