如何对枚举实例基类进行类型检查
本文关键字:类型 检查 基类 实例 枚举 | 更新日期: 2023-09-27 18:25:17
我有一个从字节派生的枚举类型。在我的公共库中,有时会将枚举参数强制转换为int。问题是,当我的字节派生枚举到达公共库中的那个方法时,转换为int失败并引发异常。
有没有一种方法可以对枚举的基类进行类型检查,这样我就可以只对基于Int的枚举进行Int强制转换?
以下是两个示例枚举:
enum DaysByte : byte { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri };
enum DaysInt : int { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri };
您可以使用Enum.GetUnderlyingType
方法
Enum.GetUnderlyingType(typeof(YourEnum)) == typeof(int)
// or via enum value
Enum.GetUnderlyingType(yourEnumValue.GetType()) == typeof(int)