Hacker News new | ask | show | jobs
by nvivo 3940 days ago
That's exactly the point. Enums are just enumerations, they're not classes. It makes little sense in my opinion to add constructors and variables to enums.

You can do exactly what java calls enums with classes in C#, which in my view are better suited to having constructors and fields. But I agree it's all preferences.

1 comments

> You can do exactly what java calls enums with classes in C#

No you cannot. You lose the single biggest benefit of enumerations - namely compile-time checking. (For instance: warning when a switch statement does not cover all cases.)

Try to do this in C#, and you'll see what I mean: http://snipplr.com/view/42422/the-planet-enum-example/. Either you end up with it being ~3x as verbose (if not more), or you lose the compile-time benefits, or both.