Constantes et types de données littérales (Visual Basic)
Un littéral est une valeur qui est exprimée comme elle-même plutôt que comme la valeur d'une variable ou le résultat d'une expression, tel que le nombre 3 ou la chaîne "Hello". Une constante est un nom significatif qui prend la place d'un littéral et conserve cette même valeur partout dans le programme, par opposition à une variable dont la valeur peut se modifier.
Si Option Infer a la valeur Off et si Option Strict a la valeur On, vous devez déclarer toutes les constantes explicitement avec un type de données. Dans l'exemple suivant, le type de données de MyByte est déclaré explicitement comme type de données Byte :
Option Strict On
Public Class Sample
Public Const MyByte As Byte = 2
End Class
Si Option Infer a la valeur On ou si Option Strict a la valeur Off, vous pouvez déclarer une constante sans spécifier de type de données avec une clause As. Le compilateur détermine le type de la constante à partir du type de l'expression. Par défaut, un littéral entier numérique est casté en un type de données Integer. Le type de données par défaut des nombres à virgule flottante est Double, et les mots clés True et False spécifient une constante Boolean.
Littéraux et contrainte de type
Il arrive parfois que vous vouliez forcer un littéral en un type de données particulier ; par exemple, lors de l'assignation d'une très grande valeur littérale intégrale à une variable de type Decimal. L'exemple suivant génère une erreur :
Dim myDecimal as Decimal
myDecimal = 100000000000000000000 ' This causes a compiler error.
L'erreur provient de la représentation du littéral. Le type de données Decimal peut avoir une valeur de cette taille, mais le littéral est implicitement représenté comme un type Long qui ne peut pas contenir une telle valeur.
Vous pouvez forcer un littéral en un type de données particulier de deux façons : en lui ajoutant un caractère de type ou en le plaçant entre des caractères englobants. Un caractère de type ou des caractères englobants doivent immédiatement précéder et/ou suivre le littéral (aucun autre caractère ou espace ne doit venir s'interposer).
Pour que l'exemple précédent fonctionne, vous devez ajouter au littéral le caractère de type D, de sorte qu'il soit représenté en tant que type Decimal :
Dim MyDecimal As Decimal = 100000000000000000000D
L'exemple suivant illustre l'utilisation correcte des caractères de type et des caractères englobants :
' Default to Integer.
Public Const DefaultInteger As Integer = 100
' Default to Double.
Public Const DefaultDouble As Double = 54.3345612
' Force constant to be type Char.
Public Const MyCharacter As Char = "a"c
' DateTime constants.
Public Const MyDate As DateTime = #1/15/2001#
Public Const MyTime As DateTime = #1:15:59 AM#
' Force data type to be Long.
Public Const MyLong As Long = 45L
' Force data type to be Single.
Public Const MySingle As Single = 45.55!
Le tableau suivant répertorie les caractères englobants et les caractères de type disponibles dans Visual Basic.
Type de données |
Caractère englobant |
Caractère de type ajouté |
Boolean |
(aucun) |
(aucun) |
Byte |
(aucun) |
(aucun) |
Char |
" |
C |
Date |
# |
(aucun) |
Decimal |
(aucun) |
D ou @ |
Double |
(aucun) |
R ou # |
Integer |
(aucun) |
I ou % |
Long |
(aucun) |
L ou & |
Short |
(aucun) |
S |
Single |
(aucun) |
F ou ! |
String |
" |
(aucun) |
Voir aussi
Tâches
Comment : déclarer une constante (Visual Basic)
Comment : déclarer des énumérations (Visual Basic)
Référence
Option Explicit, instruction (Visual Basic)
Liste des types de données (Visual Basic)
Concepts
Constantes définies par l'utilisateur (Visual Basic)
Vue d'ensemble des constantes (Visual Basic)
Vue d'ensemble des énumérations (Visual Basic)