Dank euch soweit... ich war schon kurz davor das in ein Array zu wrappen
EDIT: es klappt auch
+= zum adden und
-= zum entfernen von Flags
Code:
public enum n: uint {
None = 0,
a = 1,
b = 2,
c = 4,
All = 7
}
// ...
n e = n.All;
e -= n.b; // ergibt n.a | n.c
//...
n e = n.None;
e += n.a; // ergibt n.a
e += n.c; // ergibt n.a | n.c
e += n.b; // ergibt n.All
nur das mit dem Herausfinden ob ein Flag drin ist mit
& klappt nich
EDIT 2: okay... mit Klammern gehts doch:
Code:
if ((c & n.a) != 0) {
// prüfung ob es schon drin ist
}
if ((c & n.a) == 0) {
// prüfung ob es noch nicht drin ist
}
EDIT 3:
+= und -= sind nich gut
besser ist (zusammengefasst):
Code:
set |= subset; // hinzufügen
set &= ~subset; // entfernen
if ((set & subset) == subset) {
// subset ist im set
}
if ((set & subset) != subset) {
// subset ist nicht im set
}