Comment obtenir une valeur int à partir d'un enum en C# ? Conversion d'une énumération en nombre
Bonjour à tous ! Je viens de commencer à apprendre C# et j'ai rencontré un problème. J'ai une énumération (enum) qui décrit les statuts d'une commande :
```csharp
public enum OrderStatus
{
Created,
Processing,
Shipped,
Delivered,
Cancelled
}
```
Je dois sauvegarder le statut de la commande dans une base de données sous forme d'un nombre entier (int). Par exemple, `OrderStatus.Created` doit devenir 0, `OrderStatus.Processing` — 1, et ainsi de suite. Mais quand j'essaie d'assigner simplement la valeur :
```csharp
int statusCode = OrderStatus.Created;
```
Le compilateur génère une erreur : "Cannot implicitly convert type 'OrderStatus' to 'int'". Je comprends que l'enum est un type distinct, pas simplement un nombre. Mais comment obtenir correctement sa valeur numérique ? J'ai essayé de faire `(int)OrderStatus.Created`, et cela semble fonctionner, mais je ne suis pas sûr que ce soit la bonne méthode. Existe-t-il d'autres options ? Y a-t-il des pièges à éviter ? Par exemple, si j'ai un enum avec des valeurs explicitement définies, comme dans l'exemple ci-dessous ?
```csharp
pub