Pour info Voici un excellent exemple d'un Enum Extension de la méthode que j'ai été en mesure d'utiliser. Il met en œuvre un casse TryParse() fonction pour les enums:
public static class ExtensionMethods
{
public static bool TryParse<T>(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;
}
}
}
Vous pouvez l'utiliser de la manière suivante:
public enum TestEnum
{
A,
B,
C
}
public void TestMethod(string StringOfEnum)
{
TestEnum myEnum;
myEnum.TryParse(StringOfEnum, out myEnum);
}
Voici les deux sites que j'ai visité pour aider à venir avec ce code:
Insensible à la casse TryParse pour les Enums
Les méthodes d'Extension pour les Enums