我有一个从字节派生的枚举类型.在我的公共库中,在某些时候有一个enum参数转换为int.问题是当我的字节派生枚举到达公共库中的该方法时,转换为int失败并引发异常.
有没有办法键入检查枚举的基类,所以我只能为基于int的枚举进行Int cast?
以下是两个示例枚举:
enum DaysByte : byte { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri };
enum DaysInt : int { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri };
Run Code Online (Sandbox Code Playgroud)
你可以使用Enum.GetUnderlyingType方法
Enum.GetUnderlyingType(typeof(YourEnum)) == typeof(int)
// or via enum value
Enum.GetUnderlyingType(yourEnumValue.GetType()) == typeof(int)
Run Code Online (Sandbox Code Playgroud)