Hi there.
I am using "string enums" loosely based on this example jt posted:
sealed class MyFakeEnum
{
private string name;
private static int nextOrdinal = 1;
private int ordinal = nextOrdinal++;
private MyFakeEnum(String name)
{
this.name= name;
}
public override String ToString()
{
return name;
}
public int ToOrdinal()
{
return ordinal;
}
public static MyFakeEnum Internal = new MyFakeEnum("I"); // 1
public static MyFakeEnum External = new MyFakeEnum("E"); // 2
public static MyFakeEnum Unknown = new MyFakeEnum("U"); // 3
}
Now, i want to use my string enum in a switch statement, but I can't suss out what to do to get this to work:
// mattEnum is my enumerator, I will add an implicit operator to remove the need for
// excessive ToString calls ;)
switch (mattEnum)
{
case MyFakeEnum.Internal.ToString():
// Do something
break;
...
}
The problem is that this erorrs because c# wants a constant, and it considers my Internal.ToString method to be variable, quite rightly.. Anyone know what I should do?