Ich codiere mit einem Statusmuster für ein eingebettetes Gerät. Ich habe eine Basis- / abstrakte Klasse namens State und dann implementiert jede diskrete (konkrete) Zustandsklasse die abstrakte Zustandsklasse.
In der Staatsklasse habe ich mehrere abstrakte Methoden. Wenn ich die abstrakten Methoden nicht in der diskreten (konkreten) Klasse implementiere, gibt Visual Studio einen Fehler wie den folgenden aus:
... Fehler 1 'myConcreteState' implementiert kein geerbtes abstraktes Mitglied 'myAbstractState'
Jetzt: Ich versuche, für jeden Status eine String-Eigenschaft namens StateName zu erstellen. Immer wenn ich eine neue konkrete Klasse erstelle, muss ich StateName definieren. Ich möchte, dass VS einen Fehler auslöst, wenn ich ihn nicht verwende. Gibt es eine einfache Möglichkeit, dies zu tun?
Ich habe dies in der abstrakten / Basisklasse versucht:
public abstract string StateName { get; set; }
Ich muss die Methoden Get und Set jedoch nicht in jedem Status implementieren.
Überarbeitete Frage: In einer idealen Situation müsste für jede Statusklasse StateName definiert und von der abstrakten Basisklasse geerbt werden.
StateName = "MyState1"; //or whatever the state's name is
Wenn diese Anweisung fehlt, generiert Visual Studio einen Fehler wie oben beschrieben. Ist das möglich und wenn ja, wie?