我有一个从字节派生的枚举类型。 在我的公共(public)库中,有时会有一个枚举参数转换为 int。 问题是当我的字节派生枚举到达公共(public)库中的那个方法时,转换为 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)
关于c# - 如何类型检查枚举实例基类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26161999/