Polymorphic enums in C# ?