Enum ToString wird als Zahl angezeigt

8

Ich habe ein enum

%Vor%

Und ich beziehe eine Beschreibung mit:

%Vor%

Wo Einheit eine TimeUnit ist. Die meiste Zeit funktioniert das gut und zeigt "Days (s)" an, aber auf einem bestimmten Server wird es als "1 (s)" angezeigt.

Was würde das verursachen?

    
Liath 27.02.2013, 12:28
quelle

4 Antworten

6

Versuchen Sie, Enum.GetName ()

zu verwenden

es hat auch den Vorteil, sicherer zu sein, da es erfordert:

  • Der Wert, den Sie übergeben haben, ist nicht null.
  • Der Wert, den Sie übergeben haben, ist von einem Typ, den eine Enumeration tatsächlich als zugrunde liegenden Typ oder vom Typ der Enumeration selbst verwenden kann. Es verwendet GetType für den Wert, um dies zu überprüfen.
happygilmore 27.02.2013, 12:32
quelle
3

Sie sollten entsprechend formatieren mit ToString :

%Vor%     
Grant Thomas 27.02.2013 12:31
quelle
0

Weil Enum eine digitale Enumerationsoption ist, die nur mit Strings ausgedrückt wird (betrachte sie als Alias)

    
Nogard 27.02.2013 12:30
quelle
0

MSDN sagt:

  

Diese Methode funktioniert so, als wäre das allgemeine Formatzeichen "G"   angegeben. Das heißt, wenn FlagsAttribute nicht angewendet wird   Aufzählungstyp und es gibt eine benannte Konstante gleich dem Wert von   Diese Instanz, dann ist der Rückgabewert eine Zeichenfolge, die den Namen enthält   der Konstante. Wenn FlagsAttribute angewendet wird und es ein a gibt   Kombination von einer oder mehreren benannten Konstanten gleich dem Wert von diesem   Beispiel, dann ist der Rückgabewert eine Zeichenfolge mit einem   durch Trennzeichen getrennte Liste der Namen der Konstanten. Ansonsten der   Rückgabewert ist die Zeichenfolgendarstellung des numerischen Wertes davon   Instanz.

Im Idealfall sollte es also gut funktionieren (wenn man bedenkt, dass FlagsAttribute nicht angewendet wird und eine benannte Konstante gleich dem Wert dieser Instanz ist). Können Sie die Unterschiede zwischen den Boxen erwähnen?

Versuchen Sie auch, explizite Zahlen anzugeben.

%Vor%     
publicgk 27.02.2013 12:41
quelle

Tags und Links