我想编写一个函数,它可以根据 enum
的可能值验证给定的值(以字符串形式传递)。在匹配的情况下,它应该返回枚举实例; 否则,它应该返回默认值。
该函数可能不在内部使用 try
/catch
,这将排除使用 Enum.Parse
,后者在给定无效参数时引发异常。
我想使用类似于 TryParse
函数的方法来实现这一点:
public static TEnum ToEnum<TEnum>(this string strEnumValue, TEnum defaultValue)
{
object enumValue;
if (!TryParse (typeof (TEnum), strEnumValue, out enumValue))
{
return defaultValue;
}
return (TEnum) enumValue;
}