Laden...

Kombinierten Enumerationswert dekombinieren

Erstellt von userid11997 vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.789 Views
Thema geschlossen
U
userid11997 Themenstarter:in
400 Beiträge seit 2008
vor 12 Jahren
Kombinierten Enumerationswert dekombinieren

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?

1.346 Beiträge seit 2008
vor 12 Jahren
ColorFlags flag = ColorFlags.Red | ColorFlags.Blue;
if((flag & ColorFlags.Red) == ColorFlags.Red)
{
//Rot ist (unter anderen) gesetzt
}
6.911 Beiträge seit 2009
vor 12 Jahren

Hallo,

oder ab .net 4.0 mit der HasFlag-Methode.

mfG Gü

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!"

1.552 Beiträge seit 2010
vor 12 Jahren

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

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

U
userid11997 Themenstarter:in
400 Beiträge seit 2008
vor 12 Jahren

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?

C
1.214 Beiträge seit 2006
vor 12 Jahren

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.

Hinweis von herbivore vor 12 Jahren

Weil das trivial ist und man sowieso wissen sollte, wie man mit sowas umgeht.

So ist es!

Thema geschlossen