angenommen, wir haben eine enum
, die FlagsAttribute
hat.Enumeration mit FlagsAttributes
[Flags]
enum CarOptions
{
Sunroof = 1,
Spoiler = 2,
TintedWindow = 4
}
dies könnte leicht verwendet werden. nehmen nun an dieses
[Flags]
enum CarOptions
{
SunroofElectrical,
SunroofMechanical,
Spoiler,
TintedWindowBlack,
TintedWindowPurple
}
natürlich diese syntaktisch nicht korrekt ist. aber ein Auto kann nicht gleichzeitig mechanisches und elektrisches Schiebedach haben oder Schwarz und Purpur Getöntes Fenster haben.
Die Frage ist: Gibt es einen Mechanismus, um die Flags-Enumeration zu implementieren, die nicht einige Attribute gleichzeitig haben kann?
Ja, aber CarOptions schlägt vor, dass Sie alle Attribute kombinieren können. Erstellen Sie keine Konstrukte wie diese, für die Semantik zusätzliche EXTERN-Logik benötigt. Wenn neue Enum-Werte angezeigt werden, müssten Sie alle "if-Logik" für die gesamte Anwendung untersuchen und möglicherweise neue Abhängigkeiten hinzufügen. Schlechtes Konzept. – dzendras
@dzendras, daher war die erste Lösung einfach, keine enum's zu verwenden. –
Sie können Aufzählungen verwenden, aber trennen Sie sie, wie Sprinter252 zeigte. – dzendras