Partage via


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)

Voir aussi