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;
}

Antworten auf die Frage(14)

Ihre Antwort auf die Frage