DMI's Blog sur les technos .NET(dotnet) et J2EE

Enumérateur de string

 

Comme vous le savez très bien il peut être très utile de pouvoir faire des énumérateurs de string (par défaut les enumérateurs contiennent des entiers).

Avec .NET on peut facilement faire cela en ajoutant des descriptions à vos enumérateurs.

Pour cela procédez comme suit :

 

  1. Ajoutez les espaces de noms suivants à votre classe

 

using System.ComponentModel;

using System.Reflection;

 

Créer votre enumérateur (dans mon cas j’ai un énumérateur « Voitures »)

 

enum Voitures{

[Description("Une Renault 12 année 75 -Française-")]R12,

[Description("Une Renault 5 année 60 -Française-")]R5,

[Description("Une Peugeot 607 année 2001 -Française-")]P607

};

 

  1. Ajouter la méthode suivante permettant de récupérer la description d’une voiture

 

private string _GetDesc(Voitures enumConst)

{

FieldInfo finfo = enumConst.GetType().GetField(enumConst.ToString());

object [] descAttr = finfo.GetCustomAttributes(typeof(DescriptionAttribute),false);

 

if(descAttr.Length > 0)

return ((DescriptionAttribute)descAttr[0]).Description;

else

return enumConst.ToString();

}

 

  1. Récupérer la description d’un élément

 

Voitures v_f = Voitures.P607;

string desc = _GetDesc(v_f);//='Une Peugeot 607 année 2001 -Française-'

 

  1. Eh ben c’est parti ….

 

Vos commentaires

1 Le Mercredi 15 Mars 2006 à 22:49 GMT+2, par joss

J'ai un probleme avec la description. j'essaie de mettre une valeur récupére d'une db (Oracle) j'ai une exception
Merci de m'aider!!

2 Le Mercredi 15 Mars 2006 à 22:51 GMT+2, par dotnet

tu ne peux pas mettre une valeur récuépérée d'une db car la description est forcément une constante

3 Le Mercredi 15 Mars 2006 à 22:54 GMT+2, par joss

y'a t'il une solution de ontournement?

4 Le Mercredi 15 Mars 2006 à 22:55 GMT+2, par dotnet

Essaye de voir si tu peux générer ta constante à la volée (codedom)

Autres publications sur le sujet

Aucune référence pour le moment.

Cet article ne peut faire référence à d'autres publications.

Commenter cet article

Cet article ne peut être commenté.