Avatar ·

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! <<>>

Cast direto de tipo (cast) — o mais simples