Hallo Experten,
meine Applikation benutzt einige Enumerationen. Das im folgenden beschriebene Problem trifft aber in gleicher Weise auf ganz- und auch gebrochenzahlige Datentypen zu.
Jede Eigenschaft hat einen gültigen Wertebereich. Ich soll nun den Wertebereich einiger Datentypen zur Laufzeit ändern, abhängig davon, welchen Wert eine andere Variable annimmt. Ein Beispiel:[highlight=c#]public enum BaseColor{ invalid, red, yellow, green, cyan, blue, magenta};
public enum ColorSelection{ all, rgb, cmy};
private BaseColor someColor = BaseColor.red;
private ColorSelection colorSelection = ColorSelection.all;[/highlight]Sollte nun colorSelection den Wert ColorSelection.rgb annehmen, dann sind für someColor nur noch die Werte red, green und blue gültig.
Sollte dagegen colorSelection auf ColorSelection.cmy gesetzt werden, dann sollte someColor nurmehr die Werte cyan, magenta und yellow zulassen.
Für eine begrenzte Anzahl von Werten, Typen und Abhängigkeiten kann man das von Hand codieren. Ich aber soll einen Mechanismus erfinden, der offen ist für spätere Änderungen. Am besten, man muss nur eine ini-Datei tauschen und beim nächsten Start der Applikation gelten die neuen Regeln. Ich weiß im Moment nicht, wie ich das angehen soll.
Gibt es bereits eine Lösung für ein ähnliches Problem?
Vielen Dank im Voraus,
luker
meine Applikation benutzt einige Enumerationen. Das im folgenden beschriebene Problem trifft aber in gleicher Weise auf ganz- und auch gebrochenzahlige Datentypen zu.
Jede Eigenschaft hat einen gültigen Wertebereich. Ich soll nun den Wertebereich einiger Datentypen zur Laufzeit ändern, abhängig davon, welchen Wert eine andere Variable annimmt. Ein Beispiel:[highlight=c#]public enum BaseColor{ invalid, red, yellow, green, cyan, blue, magenta};
public enum ColorSelection{ all, rgb, cmy};
private BaseColor someColor = BaseColor.red;
private ColorSelection colorSelection = ColorSelection.all;[/highlight]Sollte nun colorSelection den Wert ColorSelection.rgb annehmen, dann sind für someColor nur noch die Werte red, green und blue gültig.
Sollte dagegen colorSelection auf ColorSelection.cmy gesetzt werden, dann sollte someColor nurmehr die Werte cyan, magenta und yellow zulassen.
Für eine begrenzte Anzahl von Werten, Typen und Abhängigkeiten kann man das von Hand codieren. Ich aber soll einen Mechanismus erfinden, der offen ist für spätere Änderungen. Am besten, man muss nur eine ini-Datei tauschen und beim nächsten Start der Applikation gelten die neuen Regeln. Ich weiß im Moment nicht, wie ich das angehen soll.
Gibt es bereits eine Lösung für ein ähnliches Problem?
Vielen Dank im Voraus,
luker
Comment