[英]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.