.NET, Architecture, ALM, Cloud

Publicité

Enum.Parse Générique ?

Un gros manque que ce soit en  2.0 ou 3.5 concernant la manipulation des énumérations est l'absence d'une méthode générique pour traiter une chaîne de caractère pour la transformer en énumération.

Que ce soit en .NET 1.0, 2.0 ou 3.5, le moyen par défaut pour arriver à ce résultat est le suivant :

MyEnum myEnum1 = (MyEnum) Enum.Parse(typeof(MyEnum), "Enum1", true);

Créons à présent une classe "EnumHelper" permettant de gérer une méthode générique permettant d'arriver au même résultat mais en simplifiant la syntaxe :

public static class EnumHelper
{
    public static T Parse<T>(string
value)
          where T :
struct
    {
        return Parse<T>(value, false
);
    }
 

    public static T Parse<T>(string value, bool ignoreCase)
          where T :
struct
    {
        return (T)Enum.Parse(typeof
(T), value, ignoreCase);
    }
}

Avec notre classe "EnumHelper", nous obtenons donc :

MyEnum myEnum2 = EnumHelper.Parse<MyEnum>("Enum1");

Nous verrons dans un prochain post comment utiliser la fonctionnalité des méthodes d'extension en C# 3.0 pour ajouter une méthode sur le type string permettant de le transformer en une énumération.

Publicité
Retour à l'accueil
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article