繁体   English   中英

C#检查一个类是否已定义枚举

[英]c# check if a class has defined enum

我有这样的课

public class SomeClass {
public enum Status { A,B,C}
}

我想要做

bool enumExists = MysteryMethod("SomeClass.Status");

MysteryMethod里面有什么?

枚举本身就是类型。

嵌套类型在容器类和类型名称之间用+命名。

因此,神秘方法的名称将为Type.GetType。

public class SomeClass
{
    public enum Status
    {

    }
}

public class Program
{
    public static void Main(string[] args)
    {
        Type t = Type.GetType("Lab.SomeClass+Status", false);
        bool isEnum = t.IsEnum;
    }
}

弄清楚了:

var asm = System.Reflection.Assembly.GetExecutingAssembly(); 
var typ = asm.GetType("SomeClass+Status")
var enumExists = (typ != null && typ.IsEnum);

技巧是在GetType时在类名后加上+。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM