Удивительно, как часто я нахожу людей, спорящих по поводу , почему что-то требуется, вместо того, чтобы отвечать на заданный вопрос или хранить штум - что может быть более полезным, чем тратить время на вопросы , почему данный запрос был сделан вместо другого запроса, на который ответчик фактически знает ответ. Отвечать на вопросы, которые не были заданы, ни в коем случае не полезно, хорошо, ребята ?!
Возвращаясь к обсуждаемой теме, сегодня утром я описал вышеописанный сценарий и могу понять, почему было бы полезно иметь возможность определять Enum в интерфейсе или базовом классе, а затем переопределять тот же самый Enum в классе, который является производным от базы или интерфейса. Одним из применений такого дизайна является объектно-реляционное отображение и управление связыванием. У вас может быть набор Enums, которые описывают, какие свойства ваших производных классов привязываются к каким типам элементов управления, например:
public enum WebControlTextBoxProperties { }
public enum WebControlLabelProperties { }
... и т. Д.
Поскольку вы не знаете точно, какие свойства будут существовать для данного производного класса до тех пор, пока не вступит в силу соответствующее наследование, но так как вы можете также захотеть иметь согласованные методы, которые используют перечисленные выше перечисления в вашей базе или интерфейсе, это совершенно - допустимый дизайн, позволяющий ожидать, что Enum будет существовать в базе / интерфейсе, но точно определять , какие члены он имеет в конкретном контексте в любых производных классах.
Мне бы очень хотелось, чтобы это было возможно в C #, как и в VB, потому что это была бы действительно полезная функция.