【问题标题】:How to Type check for enum instance base class?如何键入检查枚举实例基类?
【发布时间】:2014-10-02 13:32:19
【问题描述】:

我有一个从字节派生的枚举类型。 在我的公共库中,有时会将枚举参数转换为 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 }; 

【问题讨论】:

标签: c# enums


【解决方案1】:

你可以使用Enum.GetUnderlyingType方法

Enum.GetUnderlyingType(typeof(YourEnum)) == typeof(int)

// or via enum value
Enum.GetUnderlyingType(yourEnumValue.GetType()) == typeof(int)

【讨论】:

  • 如果他只有值呢?
  • @TimSchmelter 也补充了这一点。你是这个意思吗?
猜你喜欢
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
  • 1970-01-01
  • 2012-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-30
相关资源
最近更新 更多