Comment convertir un int en enum en C# ? Casting pour les entiers et les énumérations
Bonjour à tous ! Je suis débutant en C# et j'ai rencontré une situation déroutante en travaillant avec les énumérations (enum). J'ai cette énumération :
```csharp
public enum Status
{
New = 1,
InProgress = 2,
Completed = 3,
Failed = 4
}
```
Je reçois un entier depuis la base de données (par exemple, 2), et je dois le convertir en l'élément correspondant de l'énumération `Status`. J'ai essayé d'assigner simplement la valeur :
```csharp
int statusFromDb = 2;
Status currentStatus = statusFromDb; // Erreur de compilation !
```
Mais le compilateur génère une erreur : "Cannot implicitly convert type 'int' to 'Status'". Je comprends que C# est un langage fortement typé, mais comment effectuer correctement cette conversion ? J'ai essayé d'utiliser `(Status)statusFromDb` — cela semble fonctionner, mais est-ce sûr ? Que se passe-t-il si l'int contient une valeur qui n'existe pas dans l'énumération (par exemple, 99) ? Existe-t-il des méthodes plus fiables ? Merci d'avance pour votre aide !
<<>>