Я знаю, что вы не можете использовать наследование с перечислениями, поэтому в своем базовом классе я хочу определить, что классы, которые его реализуют, должны возвращать перечисление некоторого типа для свойства.
В идеале это было бы так:
public abstract BaseEnum MyEnum { get; set; }
Тогда все разработчики должны будут вернуть некоторую форму перечисления. Но очевидно, что BaseEnum не существует. Я могу использовать объект, но я бы не хотел.
Есть ли хороший способ сделать это?
Редактировать: я спрашиваю об этом, потому что по существу хочу сохранить имя свойства в реализующих классах одинаковым — я знаю, что не смогу работать с перечислением в базовом классе. , но если бы я не клал его в базу, то классы реализации могли сами определять имена свойств для своего перечисления, что со временем могло становиться неясным, так как они дрейфовали бы в сторону собственных реализаций.
System.Enum, вы не можете заставить производный класс изменить возвращаемый тип. Переопределенный метод также должен будет объявить возвращаемый типSystem.Enum. - person mmx   schedule 14.01.2010