top | item 10178830

(no title)

TheLoneWolfling | 10 years ago

Elaborate?

I find it really annoying that C# enums cannot have constructors and variables.

discuss

order

nvivo|10 years 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.

TheLoneWolfling|10 years ago

> 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.