Entwickler-Ecke
C# - Die Sprache - Enums als string-case in switch verwenden?
erfahrener Neuling - Fr 05.08.16 14:13
Titel: Enums als string-case in switch verwenden?
Hallo,
wie kann ich einen string mit enum-Werten in einem switch vergleichen?
so geht's nicht:
C#-Quelltext
1: 2: 3:
| switch(myString) { case MyEnum.ABC.ToString(): |
Geht das überhaupt?
Danke und Grüße
Julian
Ralf Jansen - Fr 05.08.16 14:28
Indem du erst aus dem string den Enum machst und dann im switch mit den Enums vergleichst.
C#-Quelltext
1: 2: 3: 4: 5:
| switch((MyEnum)Enum.Parse(typeof(MyEnum), myString)) { case MyEnum.ABC: ... } |
erfahrener Neuling - Fr 05.08.16 14:52
Danke so geht's.
Eine Frage noch: Warum gings denn nicht mit .ToString()? Kommt doch eigntl auch n string dabei raus..
EDIT: Ok weil switch nur konstante Werte akzeptiert :/
Ralf Jansen - Fr 05.08.16 14:58
Zitat: |
Eine Frage noch: Warum gings denn nicht mit .ToString()? Kommt doch eigntl auch n string dabei raus.. |
Aber erst zur Laufzeit die case Zweige eines switches sollten aber zur Compilezeit feststehen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!