Avatar ·

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

Le cast direct (cast) — la méthode la plus simple