Como converter int para enum em C#? Cast de tipos para inteiros e enumerações
Olá a todos! Sou novo em C# e me deparei com uma situação confusa ao trabalhar com enumerações (enum). Tenho a seguinte enumeração:
```csharp
public enum Status
{
New = 1,
InProgress = 2,
Completed = 3,
Failed = 4
}
```
Recebo do banco de dados um número inteiro (por exemplo, 2) e preciso convertê-lo no elemento correspondente da enumeração `Status`. Tentei simplesmente atribuir o valor:
```csharp
int statusFromDb = 2;
Status currentStatus = statusFromDb; // Erro de compilação!
```
Mas o compilador dá o erro: "Cannot implicitly convert type 'int' to 'Status'". Entendo que C# é uma linguagem fortemente tipada, mas como fazer essa conversão corretamente? Tentei usar `(Status)statusFromDb` — parece funcionar, mas é seguro? O que acontece se o int tiver um valor que não existe na enumeração (por exemplo, 99)? Existem maneiras mais confiáveis? Desde já, obrigado pela ajuda!
<<>>