Methods inside enum in C#

Eya picture Eya · May 13, 2011 · Viewed 94.9k times · Source

In Java, it's possible to have methods inside an enum.

Is there such possibility in C# or is it just a string collection and that's it?

I tried to override ToString() but it does not compile. Does someone have a simple code sample?

Answer

MarkPflug picture MarkPflug · May 13, 2011

You can write extension methods for enum types:

enum Stuff
{
    Thing1,
    Thing2
}

static class StuffMethods
{

    public static String GetString(this Stuff s1)
    {
        switch (s1)
        {
            case Stuff.Thing1:
                return "Yeah!";
            case Stuff.Thing2:
                return "Okay!";
            default:
                return "What?!";
        }
    }
}

class Program
{


    static void Main(string[] args)
    {
        Stuff thing = Stuff.Thing1;
        String str = thing.GetString();
    }
}