I'd like to declare an enum (a bitfield) in a base class and add to that list in subclasses:
public class BaseClass
{
public virtual enum Operations
{
Hello = Math.Pow(2,0),
GoodBye = Math.Pow(2,1)
}
public Operations ValidThingsToSay()
{
}
}
public class PoliteClass : BaseClass
{
public override enum Operations : base()
{
ThankYou = Math.Pow(2,2),
Please = Math.Pow(2,3)
}
}
public class TouristClass : PoliteClass
{
public override enum Operations : base()
{
WheresTheBathroom = Math.Pow(2,4),
HowMuchIsThat = Math.Pow(2,5)
}
}
foreach(var c in MyClasses)
Console.WriteLine(c.ValidThingsToSay().ToString());
What's the closest clean way to do this that may still have some of the benefits of using enums (intellisense, bitfield results assignable to same type, etc.)?
You're going to say use constants and a list, aren't you?