Estou codificando com um padrão de estado para um dispositivo incorporado. Eu tenho uma classe base / abstrata chamada State e, em seguida, cada classe de estado discreta (concreta) implementa a classe abstrata de estado.
Na classe estadual, tenho vários métodos abstratos. Se eu não implementar os métodos abstratos na classe discreta (concreta), o Visual Studio emitirá um erro semelhante a este:
... Erro 1 'myConcreteState' não implementa o membro abstrato herdado 'myAbstractState'
Agora: estou tentando criar uma propriedade String para cada estado chamado StateName. Sempre que crio uma nova classe concreta, preciso definir StateName. Quero que o VS gere um erro se não o usar. Existe uma maneira simples de fazer isso?
Eu tentei isso na classe abstract / base:
public abstract string StateName { get; set; }
Mas não preciso implementar os métodos Get e Set em cada estado.
Pergunta revisada: Em uma situação ideal, cada classe de estado teria que definir StateName e ser herdada da classe base abstrata.
StateName = "MyState1"; //or whatever the state's name is
Se essa instrução estiver faltando, o Visual Studio gerará um erro conforme descrito acima. Isso é possível e, se sim, como?