Dlaczego Enum.Parse () zwraca obiekt?
Istnieje wiele pytań dotyczących konwertowania ciągów znaków na wartości wyliczeniowe. Ogólnie odpowiedź wygląda jak odpowiedzi nato pytanie:
StatusEnum MyStatus = (StatusEnum) Enum.Parse( typeof(StatusEnum), "Active", true );
Chociaż jest to całkowicie rozsądna odpowiedź i możesz napisać metodę upraszczającą wywołanie, nie odpowiada ona na pytanieczemu Enum.Parse () zwracaobject
zamiast odpowiedniej wartości wyliczeniowej. Dlaczego muszę go rzucaćStatusEnum
?
Edytować:
Zasadniczo pytanie brzmi: dlaczego taka funkcja nie jest częścią klasy Enum?
public static T Parse<T>(string value) where T: struct
{
return (T)Enum.Parse(typeof (T), value);
}
Ta funkcja działa doskonale, robi dokładnie to, czego można oczekiwać.StatusEnum e = Enum.Parse<StatusEnum>("Active");
.