Почему Enum.Parse () возвращает объект?
Здесь много вопросов о преобразовании строк в перечислимое значение. Как правило, ответ выглядит примерно так:этот вопрос:
StatusEnum MyStatus = (StatusEnum) Enum.Parse( typeof(StatusEnum), "Active", true );
Хотя это вполне разумный ответ, и вы можете написать метод для упрощения вызова, он не отвечает на вопрос оwhy Enum.Parse () возвращаетobject
вместо соответствующего значения enum. Почему я должен бросить его наStatusEnum
?
Edit:
По сути, вопрос в том, почему такая функция не является частью класса Enum?
public static T Parse<T>(string value) where T: struct
{
return (T)Enum.Parse(typeof (T), value);
}
Эта функция работает отлично, выполняет именно то, что вы ожидаете.StatusEnum e = Enum.Parse<StatusEnum>("Active");
.