2012-09-16 14 views
6

tengo la siguiente enumeración:¿Por qué mi formato me da un error cuando trato de formatear una enumeración en una cadena?

public enum EReferenceKey { 
     Accounts    = 1, 
     Emails    = 3, 
     Phones    = 4 
} 

Cuando mi variable de enumeración pk es Cuentas y trato de convertir esto en "01" usando

var a = pk.ToString("00"); 

me da la siguiente excepción:

Formato Cadena puede ser solo "G", "g", "X", "x", "F", "f", "D" o "d"

¿Alguien puede explicar lo que estoy haciendo mal?

Respuesta

6

Debe convertirlo a int antes de intentar esa cadena de formato. Enum tiene su propia implementación de ToString, por lo que su cadena de formato int no es correcta.

var a = ((int)pk).ToString("00"); 
2

lanzarlo a un int antes de intentar formatear el valor de enumeración:

var a = ((int)EReferenceKey.Accounts).ToString("00"); 

que trabajó para mí.

Cuestiones relacionadas