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