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
etReadOnly
. 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 deinitializer
. Si vous spécifiez à la foisdatatype
etinitializer
, le type de données deinitializer
doit être convertible endatatype
. Si nidatatype
niinitializer
n’est présent, le type de données par défaut estObject
.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 clauseAs
commune.Initialisation. Vous devez initialiser la valeur de chaque constante dans
constantlist
. Vous utilisezinitializer
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 queCByte
etCShort
. Vous pouvez également utiliserAscW
si vous l’appelez avec une constanteString
ou un argumentChar
, 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
.