Partager via


Types de données constantes et littérales (Visual Basic)

Un littéral est une valeur exprimée comme elle-même plutôt que comme valeur d’une variable ou le résultat d’une expression, telle que le nombre 3 ou la chaîne « Hello ». Une constante est un nom explicite qui prend la place d’un littéral et conserve cette même valeur dans tout le programme, par opposition à une variable, dont la valeur peut changer.

Quand Option Infer est Off et Option Strict est 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 explicitement déclaré en tant que type 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 As clause. Le compilateur détermine le type de la constante à partir du type de l’expression. Un littéral entier numérique est converti par défaut en type Integer de données. 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 Boolean constante.

Littéraux et coercition de types

Dans certains cas, vous pouvez forcer un littéral à un type de données particulier ; par exemple, lors de l’affectation d’une valeur littérale intégrale particulièrement grande à 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 résulte de la représentation du littéral. Le Decimal type de données peut contenir une valeur de cette grande taille, 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 façons : en lui ajoutant un caractère de type ou en le plaçant entre des caractères délimiteurs. Un caractère de type ou des caractères englobants doit immédiatement précéder et/ou suivre le littéral, sans espace ou caractères intermédiaires d’un type quelconque.

Pour que l’exemple précédent fonctionne, vous pouvez ajouter le D caractère de 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 délimiteur 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