Короткий ответ - нет. Вы можете играть немного, если хотите:
Вы всегда можете сделать что-то вроде этого:
private enum Base
{
A,
B,
C
}
private enum Consume
{
A = Base.A,
B = Base.B,
C = Base.C,
D,
E
}
Но это не работает так хорошо, потому что Base.A! = Consume.A
Вы всегда можете сделать что-то вроде этого:
public static class Extensions
{
public static T As<T>(this Consume c) where T : struct
{
return (T)System.Enum.Parse(typeof(T), c.ToString(), false);
}
}
Чтобы пересечь базу и потребление ...
Вы также может отличать значения перечислений как ints и сравнивать их как ints вместо enum, но этот тип отстой тоже.
Возврат метода расширения должен ввести cast type T.