Warum gibt Enum.Parse () ein Objekt zurück?

Hier gibt es viele Fragen zum Konvertieren von Zeichenfolgen in einen Enum-Wert. Im Allgemeinen sieht die Antwort ungefähr so ​​aus wie die Antworten aufdiese Frage:

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

Das ist zwar eine absolut vernünftige Antwort, und Sie können eine Methode zur Vereinfachung des Aufrufs schreiben, sie beantwortet jedoch nicht die Frage nachWarum Enum.Parse () gibt ein zurückobject anstelle des entsprechenden Aufzählungswerts. Warum muss ich es besetzen?StatusEnum?

Bearbeiten:

Grundsätzlich stellt sich die Frage, warum eine solche Funktion nicht zur Klasse Enum gehört.

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

Diese Funktion funktioniert einwandfrei und macht genau das, was Sie erwarten.StatusEnum e = Enum.Parse<StatusEnum>("Active");.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage