Como testar o valor de Enum para Enum?
Eu quero escrever uma função que pode validar um determinado valor (passado como uma string) contra possíveis valores de umenum
. No caso de uma correspondência, deve retornar a instância enum; caso contrário, deve retornar um valor padrão.
A função não pode usar internamentetry
/catch
, que exclui o usoEnum.Parse
, que lança uma exceção quando recebe um argumento inválido.
Eu gostaria de usar algo nos moldes de umTryParse
função para implementar isso:
public static TEnum ToEnum<TEnum>(this string strEnumValue, TEnum defaultValue)
{
object enumValue;
if (!TryParse (typeof (TEnum), strEnumValue, out enumValue))
{
return defaultValue;
}
return (TEnum) enumValue;
}