Puede utilizar las funciones del módulo LanguagePrimitives
:
// Convert enum value to the underlying char value
let ch = LanguagePrimitives.EnumToValue Suit.Clubs
// Convert the char value back to enum
let suit = LanguagePrimitives.EnumOfValue ch
EDIT: no vi estas funciones en mi primer intento de respuesta, por lo la primera vez que sugirió el uso de:
unbox<char> Suit.Clubs
Esto es más corto que lo Ildjarn sugiere en un comentario, pero tiene el mismo problema - no hay ninguna comprobación de que realmente esté convirtiendo al tipo correcto. Con EnumToValue
, no puede cometer este error, ya que siempre devuelve el valor del tipo subyacente correcto.
'vamos ch = (traje de cuadro):? > char' parece funcionar, pero espero que haya una solución más elegante que no implique el boxeo ... – ildjarn