Jak spróbowaćParse dla wartości Enum?
Chcę napisać funkcję, która może zweryfikować daną wartość (przekazaną jako ciąg znaków) względem możliwych wartości anenum
. W przypadku dopasowania powinien zwrócić instancję enum; w przeciwnym razie powinna zwrócić wartość domyślną.
Funkcja może nie być używana wewnętrznietry
/catch
, co wyklucza używanieEnum.Parse
, który zgłasza wyjątek, gdy podano niepoprawny argument.
Chciałbym użyć czegoś w stylu aTryParse
funkcja implementująca to:
public static TEnum ToEnum<TEnum>(this string strEnumValue, TEnum defaultValue)
{
object enumValue;
if (!TryParse (typeof (TEnum), strEnumValue, out enumValue))
{
return defaultValue;
}
return (TEnum) enumValue;
}