jeudi 26 août 2010

Gestion des Type Enum C#

Bonjour a tous !

De retour de vacances, en forme pour de nouveau épisode de code sur mon Blog ^^. J'espère que pour vous que vos vacances se sont bien passé et que vous avez pu vous reposez et profitez du soleil.

Un petit billet pour faire quelques explication sur les Enum en C#.

Ma question initial était de pouvoir avoir des types défini et comparable en string. Cependant a ma connaissance les Enums n'etaient que comparable avec des int de cette manière :

private enum InputType
{
    Checkbox,
    Hidden,
    File,
    Password,
    Radio,
    Reset,
    Submit,
    Text
}

... InputType.Text == 7 ...

Or, ce que je souhaite c'est de pouvoir afficher le texte de mon Enum (et non la valeur) :

Console.WriteLine("Le champ Text : " + InputType.Text)
// produit : Le champ Text : 7

Pour cela, il faut utiliser les méthodes présentes dans System.Enum : (2 essentiellement)

// Récupération de tous les textes de l'enum en question
var tab = System.Enum.GetNames(typeof(InputType));
// Récupération du texte de l'enum donné
var elm = System.Enum.GetName(typeof(InputType), InputType.Checkbox);

Cependant, une méthode plus courte existe, l'utilisation du .ToString() sur le type donné. Néanmoins, l'intellissence de Visual Studio (2008 - C# 3.5) note que cette méthode est désapprouvée et qu'il faut utiliser System.Enum.ToString() ?!

Ça marche très bien comme cela :

string val = InputType.Text.ToString();

Aucun commentaire:

Enregistrer un commentaire