Enum |
Énumération |
---|---|
Visual Basic .NET (VB .NET) |
Syntaxe
[ attributelist ] [ accessmodifier ] [ Shadows ] Enum enumerationname [ As datatype ] memberlist End Enum |
Paramètres
Nom | Description | ||
---|---|---|---|
attributelist | Ce paramètre permet d'indiquer la liste des attributs s'appliquant à cette énumération. Vous devez placer la liste d'attributs entre crochets angulaires ("<" et ">"). L'attribut FlagsAttribute indique que la valeur d'une instance de l'énumération peut inclure plusieurs membres de l'énumération et que chaque membre représente un champ de bits dans la valeur de l'énumération. | ||
accessmodifier | Ce paramètre permet d'indiquer quel code peut accéder à cette énumération. Il peut s'agir de l'un des éléments suivants : Public, Protected, Friend, Private, Protected Friend, Private Protected. | ||
Shadows | Ce paramètre permet d'indiquer que cette énumération redéclare et masque un élément de programmation du même nom, ou un ensemble d'éléments surchargés, dans une classe de base. Vous ne pouvez spécifier Shadows que sur l'énumération elle-même, et non sur aucun de ses membres. | ||
enumerationname | Ce paramètre permet d'indiquer que le nom de l'énumération. | ||
datatype | Ce paramètre permet d'indiquer que le type de données de l'énumération et de tous ses membres. | ||
memberlist | Ce paramètre permet d'indiquer la liste des constantes membres déclarées dans cette instruction. Plusieurs membres apparaissent sur des lignes de code source individuelles. Chaque membre a la syntaxe et les parties suivantes :
| ||
Partie | Description | ||
membername | Cette partie permet d'indiquer le nom de ce membre. | ||
initializer | Cette partie permet d'indiquer une expression évaluée au moment de la compilation et affectée à ce membre. | ||
End Enum | Ce paramètre permet d'indiquer une terminaison de bloc Enum. |
Description
Ce mot réservé permet de déclarer une énumération et définir les valeurs de ses membres.
Remarques
- Si vous disposez d'un ensemble de valeurs immuables étant logiquement liées les unes aux autres, vous pouvez les définir ensemble dans une énumération. Cela fournit des noms significatifs pour l'énumération et ses membres, étant plus faciles à retenir que leurs valeurs. Vous pouvez ensuite utiliser les membres de l'énumération à de nombreux endroits dans votre code.
- Les avantages de l'utilisation des énumérations sont les suivants : Réduit les erreurs causées par la transposition ou les erreurs de frappe, facilite la modification des valeurs à l'avenir, rend le code plus facile à lire, ce qui signifie qu'il est moins probable que des erreurs soient introduites et assure la compatibilité ascendante. Si vous utilisez des énumérations, votre code est moins susceptible d'échouer si, à l'avenir, quelqu'un modifie les valeurs correspondant aux noms de membres.
- Une énumération a un nom, un type de données sous-jacent et un ensemble de membres. Chaque membre représente une constante.
- Une énumération déclarée au niveau de la classe, de la structure, du module ou de l'interface, en dehors de toute procédure, est une énumération de membre. C'est un membre de la classe, de la structure, du module ou de l'interface le déclarant.
- Les énumérations de membres sont accessibles de n'importe où dans leur classe, structure, module ou interface. Le code en dehors d'une classe, d'une structure ou d'un module doit qualifier le nom d'une énumération de membre avec le nom de cette classe, structure ou module. Vous pouvez éviter d'avoir à utiliser des noms complets en ajoutant une instruction Imports au fichier source.
- Une énumération déclarée au niveau de l'espace de noms, en dehors de toute classe, structure, module ou interface, est un membre de l'espace de noms dans lequel elle apparaît.
- Le contexte de déclaration d'une énumération doit être un fichier source, un espace de noms, une classe, une structure, un module ou une interface, et ne peut pas être une procédure.
- Vous pouvez appliquer des attributs à une énumération dans son ensemble, mais pas à ses membres individuellement. Un attribut fournit des informations aux métadonnées de l'assembly.
- Type de données : L'instruction Enum peut déclarer le type de données d'une énumération. Chaque membre prend le type de données de l'énumération. Vous pouvez spécifier Byte, Integer, Long, SByte, Short, UInteger, ULong ou UShort. Si vous ne spécifiez pas le type de données pour l'énumération, chaque membre prend le type de données de son initialiseur. Si vous spécifiez à la fois le type de données et l'initialiseur, le type de données de l'initialiseur doit être convertible en type de données. Si ni le type de données ni l'initialiseur ne sont présents, le type de données par défaut est Integer.
- Initialisation des membres : L'instruction Enum peut initialiser le contenu des membres sélectionnés dans la liste des membres. Vous utilisez l'initialiseur pour fournir une expression à affecter au membre. Si vous ne spécifiez pas d'initialiseur pour un membre, le Visual Basic .NET l'initialise soit à zéro (s'il s'agit du premier membre de la liste des membres), soit à une valeur supérieure de un à celle du membre immédiatement précédent. L'expression fournie dans chaque initialiseur peut être n'importe quelle combinaison de littéraux, d'autres constantes déjà définies et de membres d'énumération déjà définis, y compris un membre précédent de cette énumération. Vous pouvez utiliser des opérateurs arithmétiques et logiques pour combiner de tels éléments. Vous ne pouvez pas utiliser de variables ou de fonctions dans l'initialiseur. Cependant, vous pouvez utiliser des mots-clefs de conversion tels que CByte et CShort. Vous pouvez également utiliser la fonction AscW si vous l'appelez avec un paramètre String ou Char constant, car cela peut être évalué au moment de la compilation. Les énumérations ne peuvent pas avoir de valeurs à virgule flottante. Si un membre se voit attribuer une valeur à virgule flottante et que Option Strict est activé, une erreur de compilateur se produit. Si Option Strict est désactivé, la valeur est automatiquement convertie en type Enum. Si la valeur d'un membre dépasse la plage autorisée pour le type de données sous-jacent, ou si vous initialisez un membre à la valeur maximale autorisée par le type de données sous-jacent, le compilateur signale une erreur.
- Modificateurs : Les énumérations de membres de classe, de structure, de module et d'interface sont par défaut en accès public. Vous pouvez ajuster leurs niveaux d'accès avec les modificateurs d'accès. Les énumérations des membres de l'espace de noms sont par défaut l'accès ami. Vous pouvez ajuster leurs niveaux d'accès à public, mais pas à privé ou protégé. Tous les membres de l'énumération ont un accès public et vous ne pouvez utiliser aucun modificateur d'accès sur eux. Cependant, si l'énumération elle-même a un niveau d'accès plus restreint, le niveau d'accès d'énumération spécifié est prioritaire. Par défaut, toutes les énumérations sont des types et leurs champs sont des constantes. Par conséquent, les mots clefs Shared, Static et ReadOnly ne peuvent pas être utilisés lors de la déclaration d'une énumération ou de ses membres.
- Attribution de plusieurs valeurs : Les énumérations représentent généralement des valeurs s'excluant mutuellement. En incluant l'attribut FlagsAttribute dans la déclaration Enum, vous pouvez à la place affecter plusieurs valeurs à une instance de l'énumération. L'attribut FlagsAttribute spécifie que l'énumération doit être traitée comme un champ de bits, c'est-à-dire un ensemble d'indicateurs. Celles-ci sont appelées énumérations au niveau du bit. Lorsque vous déclarez une énumération à l'aide de l'attribut FlagsAttribute, nous vous recommandons d'utiliser des puissances de 2, c'est-à-dire 1, 2, 4, 8, 16,..., pour les valeurs. Nous recommandons également que "Aucun" soit le nom d'un membre dont la valeur est 0.
Dernière mise à jour : Mardi, le 24 Août 2021