¿Cómo convertir int a enum en C#? Conversión de tipos para enteros y enumeraciones
¡Hola a todos! Soy nuevo en C# y me encontré con una situación confusa al trabajar con enumeraciones (enum). Tengo la siguiente enumeración:
```csharp
public enum Status
{
New = 1,
InProgress = 2,
Completed = 3,
Failed = 4
}
```
Recibo un número entero de la base de datos (por ejemplo, 2) y necesito convertirlo al elemento correspondiente de la enumeración `Status`. Intenté simplemente asignar el valor:
```csharp
int statusFromDb = 2;
Status currentStatus = statusFromDb; // ¡Error de compilación!
```
Pero el compilador muestra el error: "Cannot implicitly convert type 'int' to 'Status'". Entiendo que C# es un lenguaje fuertemente tipado, pero ¿cómo se realiza correctamente esta conversión? Probé usar `(Status)statusFromDb` — parece funcionar, pero ¿es seguro? ¿Qué sucede si el int tiene un valor que no está en la enumeración (por ejemplo, 99)? ¿Existen formas más confiables? ¡Gracias de antemano por la ayuda!
<<>>