Partager via


Const, instruction (Visual Basic)

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

Syntaxe

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

Pièces

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

accessmodifier
Optionnel. Utilisez cette option pour spécifier le code qui peut accéder à ces constantes. Peut être public, protégé, ami, ami protégé, privé ou privé protégé.

Shadows
Optionnel. Utilisez-le pour redeclarer et masquer un élément de programmation dans une classe de base. Voir Ombres.

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

constant [ , constant ... ]

Chacune constant a la syntaxe et les parties suivantes :

constantname [ As datatype ] = initializer

Composant Descriptif
constantname Obligatoire. Nom de la constante. Voir Noms d’éléments déclarés.
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.

Remarques

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 ne pouvez utiliser Const qu’au niveau du module ou de la procédure. Cela signifie que le contexte de déclaration d’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) par défaut pour l’accès public, et vous ne pouvez pas utiliser de modificateurs d’accès sur eux. Constantes membres de classe et de module (en dehors de toute procédure) par défaut pour l’accès privé et les constantes membres de structure par défaut pour 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 ; il est local dans la procédure ou le bloc qui le déclare.

  • Attributs. Vous pouvez appliquer des attributs uniquement aux constantes membres, et non aux constantes locales. Un attribut contribue aux 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, Staticet ReadOnly. Vous ne pouvez pas utiliser ces mots clés lors de la déclaration d’une constante.

    Au niveau de la procédure, vous ne pouvez pas utiliser Shadows ou n’importe quel modificateur 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 constantname partie pour chacune d’elles. Plusieurs 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 datatypepas, la constante prend le type de données de initializer. Si vous spécifiez à la fois datatype et initializerque le type de données doit initializer être convertible en datatype. Si aucun n’est datatype présent initializer , le type de données est défini par défaut Objectsur .

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

  • 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 des 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 l’utiliser AscW si vous l’appelez avec une constante String ou Char un argument, 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 de leur bloc. Les constantes membres sont accessibles n’importe où dans 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 dans cette procédure ou 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 un type Objectde données, le compilateur Visual Basic lui donne le type initializer, au lieu de Object. Dans l’exemple suivant, la constante naturalLogBase a le type Decimald’exécution .

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 ToString méthode sur l’objet Type retourné par l’opérateur GetType, car Type ne peut pas être converti en String utilisant CStr.

Voir aussi