Estoy codificando con un patrón de estado para un dispositivo incrustado. Tengo una clase base / abstracta llamada Estado y luego cada clase de estado discreta (concreta) implementa la Clase de estado abstracta.
En la clase de estado tengo varios métodos abstractos. Si no implemento los métodos abstractos en la clase discreta (concreta), Visual Studio dará un error similar a este:
... El error 1 'myConcreteState' no implementa el miembro abstracto heredado 'myAbstractState'
Ahora: estoy tratando de crear una propiedad de cadena para cada estado llamada StateName. Cada vez que creo una nueva clase concreta, necesito definir StateName. Quiero que VS arroje un error si no lo uso. ¿Hay una manera simple de hacer esto?
He intentado esto en la clase abstracta / base:
public abstract string StateName { get; set; }
Pero no necesito implementar los métodos Get y Set en cada estado.
Pregunta revisada: en una situación ideal, se requeriría que cada clase de estado tenga StateName define y se herede de la clase base abstracta.
StateName = "MyState1"; //or whatever the state's name is
Si falta esa declaración, Visual Studio generará un error como se describió anteriormente. ¿Es posible? y si lo es, cómo?