Moin,
gibts ne Möglichkeit einen kombinierten Enumerationswert
ColorFlgas flag = ColorFlags.Red | ColorFlags.Blue;
zu Zerlegen, villeicht auch so, dass jeder verwendete Enumerationswert abgerufen werden kann?
ColorFlags flag = ColorFlags.Red | ColorFlags.Blue;
if((flag & ColorFlags.Red) == ColorFlags.Red)
{
//Rot ist (unter anderen) gesetzt
}
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
So findet man heraus ob ein Wert gesetzt wird.
Die ganzen gesetzten Werte findest du ganz einfach mit der Zerlegung des Flag Wertes in die Binäre Rapräsentierung heraus.
Flag Wert: 289:
Binär: 100100001
100000000+
100000
1
Dementsprechend siehst du dann heraus welcher Wert alles gesetzt wurde.
Oder einfacher. Foreach über das Enum und Abfragen aller Werte mit Enum.HasFlag
Gruß
Michael
Warum gibt es denn so eine Funktion nicht schon ab 2.0 schon Standardmässig, da man sowas ja doch gerade in Bibliotheken doch schon häufiger braucht?
Warum gibt es denn so eine Funktion nicht schon ab 2.0 schon Standardmässig, da man sowas ja doch gerade in Bibliotheken doch schon häufiger braucht?
Weil das trivial ist und man sowieso wissen sollte, wie man mit sowas umgeht. Ich würd das sowieso immer "von Hand" machen, egal welche Funktionen es im Framework dafür gibt, einfach weil das so geläufig ist und ich es gewohnt bin.
Weil das trivial ist und man sowieso wissen sollte, wie man mit sowas umgeht.
So ist es!