有没有人有更优雅的解析枚举的解决方案?以下内容对我来说似乎一团糟。
UserType userType = (UserType)Enum.Parse(typeof(UserType), iUserType.ToString());
最佳答案
我经常为它制作一个通用的助手:
public static T ParseEnum<T>(string value) where T:struct
{
return (T)Enum.Parse(typeof(T), value);
}
您可以将其与 Jon Skeet's 结合使用Unstrained Melody (或任何其他后 IL 处理器)在枚举上获得适当的类型约束,但这是可选的。
然后你可以像这样使用它:
var enumValue = ParseEnum<UserType>(iUserType.ToString());
.NET Framework 4.0 还附带 Enum.TryParse
它还提供了类似的语法,并提供了一种处理解析失败的方法。例如:
UserType userType;
if (Enum.TryParse<UserType>(iUserType.ToString(), out userType))
{
//Yay! Parse succeeded. The userType variable has the value.
}
else
{
//Oh noes! The parse failed!
}
关于c# - 优雅地解析 C# 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11742291/