Zur Information: Hier ist ein großartiges Beispiel für eine Enum-Erweiterungsmethode, die ich verwenden konnte. Sie implementiert eine Case-Insensitive TryParse() Funktion für Enums:
public static class ExtensionMethods
{
public static bool TryParse(this Enum theEnum, string strType,
out T result)
{
string strTypeFixed = strType.Replace(' ', '_');
if (Enum.IsDefined(typeof(T), strTypeFixed))
{
result = (T)Enum.Parse(typeof(T), strTypeFixed, true);
return true;
}
else
{
foreach (string value in Enum.GetNames(typeof(T)))
{
if (value.Equals(strTypeFixed,
StringComparison.OrdinalIgnoreCase))
{
result = (T)Enum.Parse(typeof(T), value);
return true;
}
}
result = default(T);
return false;
}
}
}
Sie würden sie folgendermaßen verwenden:
public enum TestEnum
{
A,
B,
C
}
public void TestMethod(string StringOfEnum)
{
TestEnum myEnum;
myEnum.TryParse(StringOfEnum, out myEnum);
}
Hier sind die zwei Seiten, die ich besucht habe, um diesen Code zu entwickeln:
Case Insensitive TryParse für Enums
Erweiterungsmethoden für Enums