Я кодирую с шаблоном состояния для встроенного устройства. У меня есть базовый / абстрактный класс, называемый State, и затем каждый дискретный (конкретный) класс состояний реализует абстрактный State State.
В государственном классе у меня есть несколько абстрактных методов. Если я не реализую абстрактные методы в дискретном (конкретном) классе, Visual Studio выдаст ошибку примерно так:
... Ошибка 1 'myConcreteState' не реализует унаследованный абстрактный член 'myAbstractState'
Теперь: я пытаюсь создать свойство String для каждого состояния с именем StateName. Всякий раз, когда я создаю новый конкретный класс, мне нужно определить StateName. Я хочу, чтобы VS выдавал ошибку, если я ее не использую. Есть ли простой способ сделать это?
Я пробовал это в абстрактном / базовом классе:
public abstract string StateName { get; set; }
Но мне не нужно реализовывать методы Get и Set в каждом государстве.
Пересмотренный вопрос: в идеальной ситуации каждый класс состояний должен иметь определения StateName и наследоваться от абстрактного базового класса.
StateName = "MyState1"; //or whatever the state's name is
Если это утверждение отсутствует, Visual Studio выдаст ошибку, как описано выше. Возможно ли это, и если да, то как?