Wie konvertieren von Enums, wo die Werte teilen, die gleichen Namen?
Wenn ich konvertieren wollen zwischen zwei Enum
Typen, die Werte die, wie ich hoffe, den gleichen Namen haben, ist es eine nette Möglichkeit, oder muss ich es so machen:
enum colours_a { red, blue, green }
enum colours_b { yellow, red, blue, green }
static void Main(string[] args)
{
colours_a a = colours_a.red;
colours_b b;
//b = a;
b = (colours_b)Enum.Parse(typeof(colours_b), a.ToString());
}
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie strenge Kontrolle über die beiden enum ist, dann wird Ihre Lösung (oder Randolpho ist) ist in Ordnung.
Wenn nicht, dann würde ich überspringen, versuchen, schwierig sein, und erstellen Sie ein statisches mapping-Klasse, wandelt zwischen Ihnen. In der Tat, würde ich wahrscheinlich empfehlen, dass trotzdem (auch wenn Sie "nach name zuordnen" gibt es heute noch), von einer Leichtigkeit-der-Wartung-Perspektive.
Können Sie dies auch tun, weiß nicht, ob es ordentlich genug:
Dies erfordert eine Erweiterung der Methode:
Verwenden Sie diese (Kapseln Variablen neue Klasse, wie gebraucht):