¿Cómo TryParse para el valor Enum?
Quiero escribir una función que pueda validar un valor dado (pasado como una cadena) contra posibles valores de unenum
. En el caso de una coincidencia, debe devolver la instancia de enumeración; de lo contrario, debería devolver un valor predeterminado.
La función no puede ser utilizada internamente.try
/catch
, lo que excluye el uso deEnum.Parse
, que lanza una excepción cuando se le da un argumento inválido.
Me gustaría usar algo en la línea de unaTryParse
Función para implementar esto:
public static TEnum ToEnum<TEnum>(this string strEnumValue, TEnum defaultValue)
{
object enumValue;
if (!TryParse (typeof (TEnum), strEnumValue, out enumValue))
{
return defaultValue;
}
return (TEnum) enumValue;
}