解析用户在C#中提供的枚举值

use*_*667 1 c# reflection enums parsing types

我希望用户提供一个枚举名称,说"颜色"和一个值,比如"红色",并告诉他们这是否是该枚举的成员值,或者枚举是否存在.

我怎样才能做到这一点?

在过去,我使用了Type.GetType("UserProvidedType").Parse/Convert.ChangeType,但是当用户提供的类型是枚举时,这似乎不起作用.请参阅: 根据c#中的用户输入解析原始类型,以 获取在此上下文中似乎不起作用的过去解决方案.

谢谢.

Jah*_*ine 6

var type = Type.GetType("YourNameSpace.Color");
var belongs = Enum.GetNames(type).Any(o => o == "Red");
Run Code Online (Sandbox Code Playgroud)