¿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;
}

Respuestas a la pregunta(14)

Su respuesta a la pregunta