Const, instruction (Visual Basic)

Déclare et définit une ou plusieurs constantes.

Syntaxe

[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist

Éléments

attributelist
Optionnel. Liste des attributs qui s’appliquent à toutes les constantes déclarées dans cette instruction. Consultez la Liste des attributs entre chevrons (« < » et « > »).

accessmodifier
Optionnel. Utilisez cette option pour spécifier le code qui peut accéder à ces constantes. Vous avez le choix entre Public, Protégé, Ami, Ami protégé, Privé ou Privé protégé.

Shadows
Optionnel. Utilisez cette option pour redéclarer et masquer un élément de programmation dans une classe de base. Consultez Shadows.

constantlist
Obligatoire. Liste des constantes déclarées dans cette instruction.

constant [ , constant ... ]

Chaque constant emploie la syntaxe et les éléments suivants :

constantname [ As datatype ] = initializer

Élément Description
constantname Obligatoire. Nom de la constante. Consultez Declared Element Names.
datatype Obligatoire si Option Strict est On. Type de données de la constante.
initializer Obligatoire. Expression évaluée au moment de la compilation et affectée à la constante.

Notes

Si vous avez une valeur qui ne change jamais dans votre application, vous pouvez définir une constante nommée et l’utiliser à la place d’une valeur littérale. Un nom est plus facile à mémoriser qu’une valeur. Vous pouvez définir la constante une seule fois et l’utiliser à de nombreux endroits dans votre code. Si, dans une version ultérieure, vous devez redéfinir la valeur, l’instruction Const est le seul endroit où vous devez apporter une modification.

Vous pouvez utiliser Const uniquement au niveau du module ou de la procédure. Cela signifie que le contexte de déclaration pour une variable doit être une classe, une structure, un module, une procédure ou un bloc, et ne peut pas être un fichier source, un espace de noms ou une interface. Pour plus d’informations, consultez Contextes de déclaration et niveaux d’accès par défaut.

Les constantes locales (à l’intérieur d’une procédure) offrent par défaut un accès public, et vous ne pouvez pas utiliser de modificateurs d’accès sur celles-ci. Les constantes membres de classe et de module (en dehors de toute procédure) sont définies par défaut sur l’accès privé, et les constantes membres de structure sont définies par défaut sur l’accès public. Vous pouvez ajuster leurs niveaux d’accès avec les modificateurs d’accès.

Règles

  • Contexte de déclaration. Une constante déclarée au niveau du module, en dehors de toute procédure, est une constante membre ; il s’agit d’un membre de la classe, de la structure ou du module qui le déclare.

    Une constante déclarée au niveau de la procédure est une constante locale ; elle est locale à la procédure ou au bloc qui la déclare.

  • Attributs. Vous pouvez appliquer des attributs uniquement aux constantes membres, et non aux constantes locales. Un attribut fournit des informations sur les métadonnées de l’assembly, ce qui n’est pas significatif pour le stockage temporaire comme les constantes locales.

  • Modificateurs. Par défaut, toutes les constantes sont Shared, Static et ReadOnly. Vous ne pouvez pas utiliser l’un de ces mots clés lors de la déclaration d’une constante.

    Au niveau de la procédure, vous ne pouvez pas utiliser Shadows ni des modificateurs d’accès pour déclarer des constantes locales.

  • Constantes multiples. Vous pouvez déclarer plusieurs constantes dans la même instruction de déclaration, en spécifiant la partie constantname pour chacune d’elles. Les constantes sont séparées par des virgules.

Règles de type de données

  • Types de données. L’instruction Const peut déclarer le type de données d’une variable. Vous pouvez spécifier n’importe quel type de données ou le nom d’une énumération.

  • Type par défaut. Si vous ne spécifiez pas datatype, la constante prend le type de données de initializer. Si vous spécifiez à la fois datatype et initializer, le type de données de initializer doit être convertible en datatype. Si ni datatype ni initializer n’est présent, le type de données par défaut est Object.

  • Différents types. Vous pouvez spécifier différents types de données pour différentes constantes à l’aide d’une clause As distincte pour chaque variable que vous déclarez. Toutefois, vous ne pouvez pas déclarer plusieurs constantes du même type à l’aide d’une clause As commune.

  • Initialisation. Vous devez initialiser la valeur de chaque constante dans constantlist. Vous utilisez initializer pour fournir une expression à affecter à la constante. L’expression 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. Vous pouvez utiliser des opérateurs arithmétiques et logiques pour combiner ces éléments.

    Vous ne pouvez pas utiliser de variables ou de fonctions dans initializer. Toutefois, vous pouvez utiliser des mots clés de conversion tels que CByte et CShort. Vous pouvez également utiliser AscW si vous l’appelez avec une constante String ou un argument Char, car cela peut être évalué au moment de la compilation.

Comportement

  • Portée. Les constantes locales sont accessibles uniquement à partir de leur procédure ou bloc. Les constantes membres sont accessibles à partir de n’importe où au sein de leur classe, structure ou module.

  • Qualification. Le code en dehors d’une classe, d’une structure ou d’un module doit qualifier le nom d’une constante membre avec le nom de cette classe, structure ou module. Le code en dehors d’une procédure ou d’un bloc ne peut pas faire référence à des constantes locales au sein de cette procédure ou de ce bloc.

Exemple 1

L’exemple suivant utilise l’instruction Const pour déclarer des constantes à utiliser à la place de valeurs littérales.

' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5

Exemple 2

Si vous définissez une constante avec le type de données Object, le compilateur Visual Basic lui donne le type de initializer, au lieu de Object. Dans l’exemple suivant, la constante naturalLogBase a le type d’exécution Decimal.

Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
    naturalLogBase.GetType.ToString())

L’exemple précédent utilise la méthode ToString sur l’objet Type retourné par l’opérateur GetType, car Type ne peut pas être converti en String à l’aide de CStr.

Voir aussi