C # - Konvertiere eine Enumeration in eine andere

7

Ich habe 2 enums

%Vor%

Wie konvertiere ich eins zu einem anderen (keine Fälle oder If-Anweisungen wechseln) .

%Vor%     
fatnjazzy 04.10.2011, 08:10
quelle

8 Antworten

10
%Vor%

Aus dem Kopf kann ich das nicht testen, wie ich gerade auf meinem OSX bin.

    
Sascha 04.10.2011, 08:12
quelle
8

Enums sind einfach verherrlichte Ganzzahlen, also kannst du einfach von einem zum anderen umwandeln:

%Vor%

Beachten Sie, dass diese Konvertierung auf den int-Werten und nicht auf den Namen basiert.

    
dtb 04.10.2011 08:12
quelle
3

Da beide im Grunde ein int sind, können Sie es einfach umsetzen.

Wenn Sie also eine Instanz von PersonTitle namens title haben, können Sie dies tun:

%Vor%     
Øyvind Bråthen 04.10.2011 08:12
quelle
3

Wirf es auf ein int und dann zurück auf die andere Enum.

%Vor%

Kann auch direkt ausgeführt werden, wie andere darauf hinweisen, aber Ich wollte explizit sein, um die Mechanik hinter der Lösung zu zeigen .

%Vor%     
Seb Nilsson 04.10.2011 08:12
quelle
2

Wenn Sie sie nach Wert konvertieren möchten, können Sie dies verwenden:

%Vor%

Wenn Sie sie nach Namen konvertieren möchten, können Sie dies verwenden:

%Vor%     
Sam Harwell 04.10.2011 08:15
quelle
1

Sie können dies tun:

%Vor%

Dies wird die Konvertierung nach dem int-Wert durchführen.

Wenn Sie es mit Name machen wollen, tun Sie:

%Vor%     
Arnaud F. 04.10.2011 08:15
quelle
1

Es gibt keinen direkten Weg dazu, und es ist der richtige Weg. Sagen wir, du könntest folgendes tun:

%Vor%

Was würde mit Ihrem Code passieren, wenn sich SystemPersonTitles zu einem der folgenden ändert:

%Vor%

Oder irgendeine andere Veränderung, an die man denken kann.
sicher, dass Sie diese Einschränkung umgehen können, aber es ist nur schlechte Programmierung. Wenn Sie den "int" Wert von ihnen verwenden und die Aufzählungsfähigkeit verlieren. Verwenden Sie einfach "int", um mit ... zu beginnen.

    
Roee Gavirel 04.10.2011 08:17
quelle
0

Etwas wie (SystemPersonTitles) (int) personTitle

    
Vasiliy Shiryaev 04.10.2011 08:12
quelle

Tags und Links