Liste des types de données (Visual Basic)

Le tableau suivant illustre les types de données Visual Basic, leurs types Common Language Runtime pris en charge, leur allocation de stockage nominal et leur plage de valeurs.

Type Visual Basic

Structure de type Common Language Runtime

Allocation de stockage nominal

Plage de valeurs

Boolean

Boolean

Dépend de la plateforme d'implémentation

True ou False

Byte

Byte

1 octet

0 à 255 (non signé)

Char (caractère unique)

Char

2 octets

0 à 65 535 (non signé)

Date

DateTime

8 octets

Du 1er janvier 0001 0:00:00 (minuit) au 31 décembre 9999 23:59:59

Decimal

Decimal

16 octets

0 à +/-79 228 162 514 264 337 593 543 950 335 (+/-7,9...E+28) † sans virgule décimale ; 0 à +/-7,9228162514264337593543950335 avec 28 décimales après la virgule ;

la plus petite valeur différente de zéro est +/-0,0000000000000000000000000001 (+/-1E-28) †

Double (nombre à virgule flottante double précision)

Double

8 octets

-1,79769313486231570E+308 à -4,94065645841246544E-324 † pour les valeurs négatives ;

4,94065645841246544E-324 à 1,79769313486231570E+308 † pour les valeurs positives

Entier

Int32

4 octets

-2 147 483 648 à 2 147 483 647 (signé)

Long (entier long)

Int64

8 octets

-9 223 372 036 854 775 808 à 9 223 372 036 854 775 807 (9,2...E+18 †) (signé)

Objet

Object (classe)

4 octets sur une plateforme 32 bits

8 octets sur une plateforme 64 bits

N'importe quel type peut être stocké dans une variable de type Object

SByte

SByte

1 octet

-128 à 127 (signé)

Short (entier court)

Int16

2 octets

-32 768 à 32 767 (signé)

Single (nombre à virgule flottante simple précision)

Single

4 octets

-3,4028235E+38 à -1,401298E-45 † pour les valeurs négatives ;

1,401298E-45 à 3,4028235E+38 † pour les valeurs positives

String (longueur variable)

String (classe)

Dépend de la plateforme d'implémentation

0 à environ 2 milliards de caractères Unicode

UInteger

UInt32

4 octets

0 à 4 294 967 295 (non signé)

ULong

UInt64

8 octets

0 à 18 446 744 073 709 551 615 (1,8...E+19 †) (non signé)

User-Defined (structure)

(hérite de ValueType)

Dépend de la plateforme d'implémentation

Chaque membre de la structure présente une plage déterminée par son type de données et qui est indépendante des plages des autres membres

UShort

UInt16

2 octets

0 à 65 535 (non signé)

. Dans la notation scientifique, « E » fait référence à une alimentation de 10. Par conséquent, 3,56E+2 équivaut à 3.56 x 102 ou 356, et 3,56E-2 équivaut à 3.56 / 102 ou 0,0356.

Notes

Pour les chaînes contenant du texte, utilisez la fonction StrConv pour effectuer une conversion d'un format de texte à un autre.

Consommation de mémoire

Lorsque vous déclarez un type de données élémentaire, il est risqué de supposer que sa consommation de mémoire est identique à son allocation de stockage nominal. Cela est dû aux considérations suivantes :

  • Assignation de stockage. Le Common Language Runtime peut assigner le stockage en fonction des caractéristiques actuelles de la plateforme sur laquelle s'exécute votre application. Si la mémoire est presque pleine, il se peut qu'il compresse vos éléments déclarés aussi étroitement que possible. Dans d'autres cas, il se peut qu'il aligne leurs adresses mémoire sur les limites matérielles naturelles pour optimiser les performances.

  • Largeur de plateforme. L'assignation de stockage est différente sur une plateforme 64 bits et sur une plateforme 32 bits.

Types de données composites

Les mêmes considérations s'appliquent à chaque membre d'un type de données composite (par exemple, une structure ou un tableau). Il ne suffit pas d'additionner les allocations de stockage nominal des membres du type. D'autre part, il existe d'autres considérations, telles que les suivantes :

  • Charge mémoire. La configuration requise pour la mémoire est plus importante pour certains types composites. Par exemple, un tableau utilise davantage de mémoire pour le tableau lui-même, mais également pour chaque dimension. Sur une plateforme 32 bits, cette charge mémoire est actuellement de 12 octets, auxquels il convient d'ajouter 8 octets pour chaque dimension. Sur une plateforme 64 bits, cette configuration requise est doublée.

  • Disposition de stockage. Il est risqué de supposer que l'ordre de stockage dans la mémoire est le même que l'ordre de vos déclarations. Vous ne pouvez même pas faire de suppositions au sujet de l'alignement des octets, tels qu'une limite de 2 octets ou de 4 octets. Si vous définissez une classe ou une structure et que vous devez contrôler la disposition de stockage de ses membres, vous pouvez appliquer l'attribut StructLayoutAttribute à la classe ou à la structure.

Charge mémoire d'un objet

Un Object faisant référence à un type de données élémentaire ou composite utilise 4 octets en plus des données contenues dans le type de données.

Voir aussi

Référence

Fonctions de conversion de types de données (Visual Basic)

Liste des conversions (Visual Basic)

StrConv

StructLayoutAttribute

Concepts

Caractères de type (Visual Basic)

Utilisation efficace des types de données (Visual Basic)