将字符串值作为类型传递
本文关键字:类型 字符串 | 更新日期: 2023-09-27 18:18:17
我有一些枚举,如:OneEnum, TwoEnum, ThreeEnum等。根据用户的输入,我想打印相应枚举的内容。
我使用像下面这样的foreach来完成。
foreach(OneEnum i in Enum.GetValues(typeof(OneEnum)))
{
Console.WriteLine("{0}", i);
}
由于我有许多不同的枚举,所以我试图创建一种方法来实现这一点,而不需要使用许多if语句来检查枚举类型。
在某个点,我得到一个字符串,像enumType = "OneEnum"
或enumType = "TwoEnum"
等,这是枚举的类型。
是否有一种方法可以传递字符串的值作为foreach中的枚举类型?
谢谢
您要找的是Type.GetType
foreach(Enum i in Enum.GetValues(Type.GetType("Your.Namespace.OneEnum"))
{
Console.WriteLine("{0}", i);
}
实例:http://rextester.com/KXFEX78943
您可以通过反射获得类型:
foreach(Enum i in Enum.GetValues(Type.GetType(typeName)))
{
Console.WriteLine("{0}", i);
}
您必须确保typeName
是一个程序集限定名称。