Wie TryParse für Enum-Wert?
Ich möchte eine Funktion schreiben, mit der ein gegebener Wert (als Zeichenfolge übergeben) gegen mögliche Werte von a validiert werden kannenum
. Im Falle einer Übereinstimmung sollte die Enum-Instanz zurückgegeben werden. Andernfalls sollte ein Standardwert zurückgegeben werden.
Die Funktion wird möglicherweise nicht intern verwendettry
/catch
, was die Verwendung ausschließtEnum.Parse
, der eine Ausnahme auslöst, wenn ein ungültiges Argument angegeben wird.
Ich würde gerne etwas nach dem Vorbild von a verwendenTryParse
Funktion, um dies zu implementieren:
public static TEnum ToEnum<TEnum>(this string strEnumValue, TEnum defaultValue)
{
object enumValue;
if (!TryParse (typeof (TEnum), strEnumValue, out enumValue))
{
return defaultValue;
}
return (TEnum) enumValue;
}