Por que o Enum.Parse () retorna o objeto?

Há muitas perguntas aqui sobre como converter strings em um valor enum. Geralmente, a resposta é algo como as respostas emessa questão:

StatusEnum MyStatus = (StatusEnum) Enum.Parse( typeof(StatusEnum), "Active", true );

Embora essa seja uma resposta perfeitamente razoável, e você pode escrever um método para simplificar a chamada, ela não responde à pergunta deporque Enum.Parse () retorna umobject em vez do valor enum apropriado. Por que eu tenho que lançá-lo paraStatusEnum?

Editar:

Basicamente, a questão é por que uma função como essa não faz parte da classe Enum?

    public static T Parse<T>(string value) where T: struct 
    {
        return (T)Enum.Parse(typeof (T), value);
    }

Esta função funciona perfeitamente, faz exatamente o que você espera.StatusEnum e = Enum.Parse<StatusEnum>("Active");.

questionAnswers(4)

yourAnswerToTheQuestion