English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Enuméré (Enum) C#

En C#, l'enum (type d'énumération) est utilisé pour attribuer des noms de constantes à un ensemble de valeurs entières numériques. Il rend les valeurs constantes plus lisibles, par exemple, WeekDays.Monday est plus lisible que le nombre 0 lorsqu'il s'agit de faire référence à un jour de la semaine.

Les enumerations sont définies directement en utilisant la clause enum dans l'espace de noms, la classe ou la structure. Tous les noms de constantes peuvent être déclarés à l'intérieur des accolades, séparés par des virgules. Voici une définition de l'enumeration des jours de la semaine.

enum WeekDays
{
    Monday,
    Tuesday,
    Wednesday,
    jeudi,
    vendredi,
    samedi,
    dimanche
}

Au-dessus, l'enumeration WeekDays est déclarée sur chaque ligne, séparée par des virgules.

Valeur de l'enumeration

Si aucune valeur n'est attribuée à un membre de l'enumeration, le compilateur attribuera automatiquement des valeurs entières (commençant par zéro) à chaque membre par défaut. Le premier membre de l'enumeration sera 0, et la valeur de chaque membre d'enumeration suivant augmentera1.

enum WeekDays
{
    Monday,     // 0
    Tuesday,    // 1
    Wednesday,  // 2
    jeudi,   // 3
    vendredi,     // 4
    samedi,   // 5
    dimanche      // 6
}

Il est possible d'attribuer des valeurs différentes aux membres de l'enumeration. La modification de la valeur par défaut des membres de l'enumeration attribuera automatiquement des valeurs incrémentées par ordre aux autres membres.

enum Categories
{
    Electronics,    // 0
    Food,           // 1
    Automotive = 6, // 6
    Arts,           // 7
    BeautyCare,     // 8
    Fashion         // 9
}

Vous pouvez même attribuer des valeurs différentes à chaque membre.

enum Categories
{
    Electronics = 1,  
    Food = 5, 
    Automotive = 6, 
    Arts = 10, 
    BeautyCare = 11, 
    Fashion = 15,
    WomanFashion = 15
}

Les enumerations peuvent être de n'importe quel type de données numériques, par exemple byte, sbyte, short, ushort, int, uint, long ou ulong. Cependant, les enumerations ne peuvent pas être de type chaîne de caractères.

Après le nom de l'enumeration, spécifiez le type : :type. Voici une enumeration de type byte définie.

enum Categories: byte
{
    Electronics = 1,  
    Food = 5, 
    Automotive = 6, 
    Arts = 10, 
    BeautyCare = 11, 
    Fashion = 15
}

Accéder à une enumeration

Il est possible d'utiliser la syntaxe de point : enum.membre pour accéder à l'enumeration

enum WeekDays
{
    Monday, 
    Tuesday,
    Wednesday,
    jeudi, 
    vendredi, 
    samedi,
    dimanche 
}
Console.WriteLine(WeekDays.Monday); // Lundi
Console.WriteLine(WeekDays.Tuesday); // Mardi
Console.WriteLine(WeekDays.Wednesday); // Mercredi
Console.WriteLine(WeekDays.Thursday); // Jeudi
Console.WriteLine(WeekDays.Friday); // Vendredi
Console.WriteLine(WeekDays.Saturday); // Samedi
Console.WriteLine(WeekDays.Sunday); // Dimanche

Conversion de l'enumeration

La conversion d'un type d'enumeration en type de base de nombres entiers nécessite une conversion explicite.

enum WeekDays
{
    Monday, 
    Tuesday,
    Wednesday,
    jeudi, 
    vendredi, 
    samedi,
    dimanche 
}
Console.WriteLine(WeekDays.Friday); //Sortie : vendredi 
int day = (int) WeekDays.Friday; // Conversion de enum à int
Console.WriteLine(day); //Sortie :4 
var wd = (WeekDays) 5; // Conversion de int à enum
Console.WriteLine(wd);//Sortie : samedi

enum est une classe abstraite.