c# - 如何类型检查枚举实例基类?

标签 c# enums

我有一个从字节派生的枚举类型。 在我的公共(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/

相关文章:

c# - 如何将 Graphic Raycaster 与 WorldSpace UI 结合使用?

c# - 如何将当前系统时间转换为 UTC 秒

python - 读取 python 程序的配置值的最佳方法是什么?引用另一个文件中定义的 Enum 类是否常见?

c# - 具有无限参数的参数化 SQL 查询

c# - 循环访问数据库

C# WCF Web API + JSONP

sql - 我应该将枚举存储在数据库级别还是应用程序逻辑 (.NET) 中?

java - 如何使用 JPA 保留枚举?

java - 如何有效地返回当前数据中心的字符串基础?

Java: `enum` 与 `String` 作为参数