Enums With Class Features

Enums are great for storing constants, but they lack strong-typing because you can't create an instance of them. I want the best of both worlds. I want my switch statements to work off constants like enums. I want to pass these constants in a strongly-typed container.

While switch statements are often seen as a code smell, there are still plenty of situations where they make sense. Other enum alternatives have been posted by Steve Smith (Ardalis) and Jimmy Bogard (Los Techies) that are coming to a similar solution.