Avatar ·

¿Cómo obtener un valor int de un enum en C#? Conversión de enumeración a número

¡Hola a todos! Acabo de empezar a aprender C# y me encontré con un problema. Tengo un enum que describe los estados de un pedido: ```csharp public enum OrderStatus { Created, Processing, Shipped, Delivered, Cancelled } ``` Necesito guardar el estado del pedido en la base de datos como un número entero (int). Por ejemplo, `OrderStatus.Created` debería ser 0, `OrderStatus.Processing` — 1, y así sucesivamente. Pero cuando intento asignar el valor directamente: ```csharp int statusCode = OrderStatus.Created; ``` El compilador da un error: "Cannot implicitly convert type 'OrderStatus' to 'int'". Entiendo que un enum es un tipo separado, no solo un número. Pero entonces, ¿cómo obtengo correctamente su valor numérico? Probé hacer `(int)OrderStatus.Created`, y parece funcionar, pero no estoy seguro de que sea la forma correcta. ¿Hay otras opciones? ¿Quizás hay algún inconveniente? Por ejemplo, ¿qué pasa si tengo un enum con valores explícitamente asignados, como en el siguiente ejemplo? ```csharp pub