Quote Originally Posted by purpleflash
In C++, I have a nice little header file with 4 #defines...

All I need to do is #include the header.. then I can use the defines all over the place.. all I want to do is use some english-looking text instead of 0, 1, 2, etc.


But in C# I gotta reference it with World. Namespace.File.Class.Somethingelse.gibberish.yadayadayad

why is this so much more difficult???
I know you have this solved already using JonnyPoet's suggestion of the public enum, but I thought I mention a couple of things.

In C++, your 4 #defined wasn't type safe. You had to defined the #define values and then call them in a function with

Code:
void SomeFn( int pseudoEnum );
As such you had to explicitly write the range validation. In C# you get that for free (because you can't ever use a valid that isn't in the enum).

With regard to Namespace.File.Class.Somethingelse.gibberish.yadayadayad

You don't need to always specify the fully qualified name of the object (and I'm sure you've already figured it out). You have 3 options:

1) Fully qualified name
2) If the enum (const, class, etc) is in the same namespace as where you are calling it from, just call the enum (const, class, etc) directly (no ns needed)
3) Use the 'using' statement to include the namespace in the file (if the enum or other item is in a different namespace).