¿Por qué Enum.Parse () devuelve el objeto?
Hay muchas preguntas aquí sobre la conversión de cadenas a un valor de enumeración. En general, la respuesta se parece a las respuestas enesta pregunta:
StatusEnum MyStatus = (StatusEnum) Enum.Parse( typeof(StatusEnum), "Active", true );
Si bien esa es una respuesta perfectamente razonable, y puede escribir un método para simplificar la llamada, no responde la pregunta depor qué Enum.Parse () devuelve unobject
en lugar del valor enum apropiado. ¿Por qué tengo que lanzarlo aStatusEnum
?
Editar:
Básicamente, la pregunta es ¿por qué una función como esta no forma parte de la clase Enum?
public static T Parse<T>(string value) where T: struct
{
return (T)Enum.Parse(typeof (T), value);
}
Esta función funciona perfectamente bien, hace exactamente lo que cabría esperar.StatusEnum e = Enum.Parse<StatusEnum>("Active");
.