Я хочу обработать присвоение значения перечисления в базовом классе. Я не уверен, каким типом должно быть базовое поле для базового класса, учитывая, что подкласс определяет, из какого перечисления будет получено это значение.
В базовом классе ниже я использовал object
. Вместо этого я ищу правильный базовый тип. Я пробовал Enum
, но, хотя Intellisense не жалуется на конструкторы, у меня проблемы с большим количеством другого кода.
public enum A { One, Two, Three }
public enum B { Four, Five, Six }
public abstract class FooBase
{
object _enumVal;
protected FooBase(object enumVal)
{
_enumVal = enumVal;
}
}
public class Bar : FooBase
{
public Bar(A enumVal):base(enumVal) {}
}
public class Bat : FooBase
{
public Bat(B enumVal):base(enumVal) {}
}