Moin,
gibt es in C# ein einfaches Konstrukt, mit dem ich das realisieren kann?
Es gibt eine Variable CellType, die die Werte underWater, land, shore, mountain annehmen kann. Dabei dürfen auch mehrere Werte gleichzeitig gesetzt werden (eben wenn mehreres zutrifft):
underwater schließt land und shore aus.
land schließt underWater aus.
shore schließt underWater aus.
So etwas wie underWater + mountain ist erlaubt.
Ich hab es erst mal über die alte Bitmuster-Variante gelöst:
Die Werte werden einfach ver-ODER-t.
Ignoriert das ulong, das steht erst mal nur pauschal hier. Ich weiß, dass es oversized ist.
Bei dieser Variante kann ich aber Dinge wie underWater + land nur über die Setter-Methode mit zig Ifs ausschließen. Daher bin ich auf der Suche nach einem Konstrukt, bei dem ich auf einfache Art explizit die erlaubten Kombinationen angeben und die unerlaubten Kombinationen ausschließen kann.
Gruß, Laurin
gibt es in C# ein einfaches Konstrukt, mit dem ich das realisieren kann?
Es gibt eine Variable CellType, die die Werte underWater, land, shore, mountain annehmen kann. Dabei dürfen auch mehrere Werte gleichzeitig gesetzt werden (eben wenn mehreres zutrifft):
underwater schließt land und shore aus.
land schließt underWater aus.
shore schließt underWater aus.
So etwas wie underWater + mountain ist erlaubt.
Ich hab es erst mal über die alte Bitmuster-Variante gelöst:
Code:
public static ulong UNDERWATER = 0;
public static ulong LAND = 1;
public static ulong SHORE = 2 + 1; // Küste = Land
public static ulong MOUNTAIN = 4;
private ulong CellType;
Ignoriert das ulong, das steht erst mal nur pauschal hier. Ich weiß, dass es oversized ist.
Bei dieser Variante kann ich aber Dinge wie underWater + land nur über die Setter-Methode mit zig Ifs ausschließen. Daher bin ich auf der Suche nach einem Konstrukt, bei dem ich auf einfache Art explizit die erlaubten Kombinationen angeben und die unerlaubten Kombinationen ausschließen kann.
Gruß, Laurin
Zuletzt bearbeitet:
(UND und ODER vertauscht)