c# - 优雅地解析 C# 枚举

标签 c# enums

有没有人有更优雅的解析枚举的解决方案?以下内容对我来说似乎一团糟。

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/

相关文章:

c# - Paypal 付款处理

C#:我能否从 CLR 的未处理异常中获取详细信息?

java - 如何从java中的ENUM中随机选择两个字符串之间的字符串?

typescript - Typescript 上的枚举与常量差异

vb.net - 如何防止将 Enum 与 Integer 进行比较?

C# - 对象组合 - 删除样板代码

c# - WPF/.NET 数据访问模型 - 资源推荐

c# - EFCore SqlClient 错误 LocalDB

java - 通过隐式向伴生对象添加方法

objective-c - 查找枚举的未使用情况 (Objective-C/Swift)