Я хочу написать функцию, которая может проверять заданное значение (переданное как строка) на возможные значения 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;
}