Avatar ·

Cómo convertir int a enum en C#? Casting y Enum.Parse

¡Hola a todos! Soy un desarrollador C# principiante y me encontré con una situación que no entiendo. Tengo un enum para los estados de un pedido: ```csharp public enum OrderStatus { Created = 1, Processing = 2, Shipped = 3, Delivered = 4 } ``` Desde la base de datos obtengo un valor numérico del estado como int (por ejemplo, 2). Necesito convertir este int en un elemento del enum OrderStatus. Intenté simplemente asignar: ```csharp int statusValue = 2; OrderStatus status = statusValue; // ¡Error de compilación! ``` Pero obtengo un error: "Cannot implicitly convert type 'int' to 'OrderStatus'". Entiendo que C# es un lenguaje fuertemente tipado, pero ¿cómo se realiza correctamente esta conversión? He oído sobre el casting explícito y el método Enum.Parse, pero no entiendo bien cuál es la diferencia y qué método es mejor usar. También me interesa saber qué sucede si paso un número que no corresponde a ningún valor del enum (por ejemplo, 5 o 0). ¿Se lanzará una excepción?