Const, instruction (Visual Basic)

Mise à jour : novembre 2007

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

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

Éléments

  • attributelist
    Facultatif. Liste d'attributs s'appliquant à toutes les constantes déclarées dans cette instruction. Liste d'attributs est mis entre des signes "inférieur à" et "supérieur à" ("<" et ">").

  • accessmodifier
    Facultatif. Utilisez cet élément pour spécifier le code qui peut accéder à ces constantes. Peut être Public (Visual Basic), Protected (Visual Basic), Friend (Visual Basic), Protected Friend ou Private (Visual Basic).

  • Shadows
    Facultatif. Utilisez cet élément pour redéclarer et masquer un élément de programmation dans une classe de base. Consultez Shadows.

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

    constant[ , constant ... ]

    Chaque constant emploie la syntaxe et les paramètres suivants :

    constantname[ As datatype ] = initializer

    Élément

    Description

    constantname

    Obligatoire. Nom de la constante. Consultez Noms d'éléments déclarés.

    datatype

    Requis si Option Strict a la valeur On. Type de données de la constante.

    initializer

    Obligatoire. Expression qui est évaluée au moment de la compilation et assignée à la constante.

Notes

Si votre application contient une valeur qui ne change jamais, vous pouvez définir une constante nommée et l'utiliser à la place d'une valeur littérale. Il est plus facile de se rappeler d'un nom que d'une valeur. Vous pouvez définir la constante une seule fois et l'utiliser dans plusieurs zones de votre code. Si vous devez redéfinir la valeur dans une version ultérieure, l'instruction Const est la seule zone que vous devez modifier.

Vous pouvez utiliser Const seulement 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 (dans une procédure) disposent par défaut d'un accès public, et vous ne pouvez pas leur appliquer des modificateurs d'accès. Les constantes membres de la classe et du module (en dehors d'une procédure) disposent par défaut d'un accès privé, et les constantes membres de la structure disposent par défaut d'un accès public. Vous pouvez régler 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, à l'extérieur de toute procédure, est une constante membre ; elle est membre de la classe, de la structure ou du module qui la 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 ne pouvez appliquer des attributs qu'aux constantes membres, mais pas aux constantes locales. Un attribut fournit des informations aux métadonnées de l'assembly, qui ne sont pas explicites pour le stockage temporaire tel que 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 ou les 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, lorsqu'il y en a plusieurs, sont séparées par des virgules.

Règles relatives aux types 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 un 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 datatype et initializer, le type de données de initializer doit pouvoir être converti en datatype. Si ni l'élément datatype ni l'élément initializer n'est présent, le type de données a la valeur Object par défaut.

  • Types différents. Vous pouvez spécifier différents types de données pour les constantes en utilisant une clause As distincte pour chaque variable que vous déclarez. Toutefois, vous ne pouvez pas déclarer plusieurs constantes comme étant du même type en utilisant une clause As commune.

  • Initialisation. Vous devez initialiser la valeur de chaque constante dans constantlist. Vous utilisez initializer pour fournir une expression à assigner à la constante. L'expression peut être une combinaison de littéraux, d'autres constantes qui sont déjà définies et des membres de l'énumération qui sont 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 ni 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 l'évaluation peut se produire au moment de la compilation.

Comportement

  • Portée. Les constantes locales sont uniquement accessibles à partir de leur procédure ou bloc. Les constantes membres sont accessibles à partir de n'importe quelle zone de leur classe, structure ou module.

  • Qualification. Le code à l'extérieur d'une classe, d'une structure ou d'un module doit qualifier le nom d'une constante membre avec le nom de cette classe, de cette structure ou de ce module. Le code à l'extérieur d'une procédure ou d'un bloc ne peut pas faire référence aux constantes locales de cette procédure ou de ce bloc.

Exemple

L'exemple suivant utilise l'instruction Const pour déclarer les 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

Si vous définissez une constante avec le type de données Object, le compilateur Visual Basic lui affecte 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

Concepts

Conversions implicites et explicites

Constantes et énumérations intrinsèques

Référence

Enum, instruction (Visual Basic)

#Const, directive

Dim, instruction (Visual Basic)

ReDim, instruction (Visual Basic)

Fonctions de conversion de types de données

Fonctions Asc, AscW

Autres ressources

Constantes et énumérations en Visual Basic