Avatar ·

如何在 C# 中将 int 转换为 enum?类型转换和 Enum.Parse

大家好!我是一名 C# 初学者,遇到了一个让我困惑的情况。我有一个订单状态的枚举 (enum): ```csharp public enum OrderStatus { Created = 1, Processing = 2, Shipped = 3, Delivered = 4 } ``` 我从数据库中获取状态数值,类型为 int(例如 2)。我需要将这个 int 转换为 OrderStatus 枚举元素。我尝试直接赋值: ```csharp int statusValue = 2; OrderStatus status = statusValue; // 编译错误! ``` 但收到错误:“Cannot implicitly convert type 'int' to 'OrderStatus'”。我理解 C# 是强类型语言,但如何正确执行这种转换呢? 我听说过显式转换 (cast) 和 Enum.Parse 方法,但不太明白它们的区别以及哪种方式更好。另外,我还想知道,如果我传递一个与任何 enum 值都不匹配的数字(例如 5 或 0),会发生什么?会抛出异常吗?