Как попробоватьParse для значения Enum?
Я хочу написать функцию, которая может проверять заданное значение (передается в виде строки) по возможным значениямenum
, В случае совпадения он должен вернуть экземпляр enum; в противном случае он должен вернуть значение по умолчанию.
Функция не может использоваться внутриtry
/catch
, что исключает использованиеEnum.Parse
, который выдает исключение, когда ему дан неверный аргумент.
Я хотел бы использовать что-то вродеTryParse
Функция для реализации этого:
public static TEnum ToEnum<TEnum>(this string strEnumValue, TEnum defaultValue)
{
object enumValue;
if (!TryParse (typeof (TEnum), strEnumValue, out enumValue))
{
return defaultValue;
}
return (TEnum) enumValue;
}