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, comme 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 tout au long du programme, contrairement à une variable, dont la valeur peut changer.
Quand Option Infer est Off
et Option Strict est On
, vous devez déclarer explicitement toutes les constantes avec un type de données. Dans l’exemple suivant, le type de données de MyByte
est explicitement déclaré en tant que type de données Byte
:
Option Strict On
Public Class Sample
Public Const MyByte As Byte = 2
End Class
Quand Option Infer
est On
ou Option Strict
est 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. Un littéral entier numérique est casté par défaut en type de données Integer
. Le type de données par défaut pour les nombres à virgule flottante est Double
, et les mots clés True
et False
spécifient une constanteBoolean
.
Littéraux et contrainte de type
Dans certains cas, vous pouvez forcer un littéral à un type de données particulier ; par exemple, lors de l’attribution d’une valeur littérale intégrale particulièrement grande à une variable de type Decimal
. L'exemple suivant produit une erreur :
Dim myDecimal as Decimal
myDecimal = 100000000000000000000 ' This causes a compiler error.
L’erreur résulte de la représentation du littéral. Le type de données Decimal
peut contenir une valeur aussi grande, mais le littéral est implicitement représenté sous la forme d’un Long
, ce qui ne peut pas.
Vous pouvez forcer un littéral à un type de données particulier de deux manières : en lui ajoutant un caractère de type ou en le plaçant dans des caractères englobants. Un caractère de type ou des caractères englobants doit immédiatement précéder et/ou suivre le littéral, sans espace ni caractères d’intervention d’aucune sorte.
Pour que l’exemple précédent fonctionne, vous pouvez ajouter le caractère de D
type au littéral, ce qui le fait représenter sous la forme d’un 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 montre 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) |