【问题标题】:Test if an object is an Enum测试对象是否为枚举
【发布时间】:2011-02-24 12:24:48
【问题描述】:

我想知道“theObject”是否是一个枚举(任何枚举类型)

 foreach (var item in Enum.GetValues(theObject.GetType())) {

     //do something
 }

【问题讨论】:

    标签: c# enums value-type


    【解决方案1】:

    问题就是答案。 :)

    bool isEnum = theObject is Enum;
    

    【讨论】:

    • 爱它!更接近于这个问题: if (theObject is Enum) {...}
    • 这甚至不是我来这里的目的,我给你一个观点。太……干净了……,好帅的T.T
    • /*Test*/ if (anObject is /*an*/ Enum) {}
    • bool isEnum = theObject.GetType().IsEnum;更好,是 Enum 并不总是返回 true
    【解决方案2】:

    如果您有Type,请使用Type.IsEnum 属性,例如:

    bool isEnum = theObject.GetType().IsEnum;
    

    【讨论】:

    • 这对我有用。我不知道如何使接受的答案在 VB.NET 中起作用。
    • 我实际上需要知道如何检查 Type 是否是 Enum 类型。 +1
    【解决方案3】:

    只需使用

    if (theObject is Enum)
     //is an enum
    

    【讨论】:

      【解决方案4】:

      对于泛型类型参数,参数可以被约束而不是被测试:

      where T : Enum
      

      【讨论】:

      • C# 7.3!这是更新 C# 版本的一个非常好的理由 :) 项目属性->构建->高级
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多