Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le tableau suivant présente les types de données Visual Basic, leurs types common language runtime pris en charge, leur allocation de stockage nominale et leurs plages de valeurs.
Type Visual Basic | Structure de type Common Language Runtime | Allocation de stockage nominale | Plage de valeurs |
---|---|---|---|
Booléen | Boolean | Dépend de l’implémentation de la plateforme |
True ou False |
Byte | Byte | 1 octets | 0 à 255 (non signé) |
Char (caractère unique) | Char | 2 octets | 0 à 65535 (non signé) |
Date | DateTime | 8 octets | 0:00:00 (minuit) le 1er janvier 0001 à 11:59:59 pm le 31 décembre 9999 |
Décimal | Decimal | 16 octets | 0 à +/-79 228 162 514 264 337 593 543 950 335 (+/-7.9...E+28) † sans décimale ; 0 à +/-7.9228162514264337593593535 avec 28 places à droite de la décimale ; le plus petit nombre différent de zéro est +/-0.0000000000000000000000001 (+/-1E-28) † |
Double (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é) |
Object | Object (classe) | 4 octets sur une plateforme 32 bits 8 octets sur la plateforme 64 bits |
Tout type peut être stocké dans une variable de type Object |
SByte | SByte | 1 octets | -128 à 127 (signé) |
Short (entier court) | Int16 | 2 octets | -32 768 à 32 767 (signé) |
Single (à 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 |
Chaîne (longueur variable) | String (classe) | Dépend de l’implémentation de la plateforme | 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é) |
Défini par l’utilisateur (structure) | (hérite de ValueType) | Dépend de l’implémentation de la plateforme | Chaque membre de la structure a une plage déterminée par son type de données et indépendamment des plages des autres membres |
UShort | UInt16 | 2 octets | 0 à 65 535 (non signé) |
† En notation scientifique, « E » fait référence à une puissance de 10. Ainsi, 3.56E+2 signifie 3,56 x 102 ou 356, et 3.56E-2 signifie 3.56 / 102 ou 0.0356.
Remarque
Pour les chaînes contenant du texte, utilisez la StrConv fonction pour convertir d’un format de texte à un autre.
En plus de spécifier un type de données dans une instruction de déclaration, vous pouvez forcer le type de données de certains éléments de programmation à l’aide d’un caractère de type. Voir Caractères de type.
Consommation de mémoire
Lorsque vous déclarez un type de données élémentaire, il n’est pas sûr de supposer que sa consommation de mémoire est identique à son allocation de stockage nominale. Cela est dû aux considérations suivantes :
Affectation de stockage. Le Common Language Runtime peut affecter le stockage en fonction des caractéristiques actuelles de la plateforme sur laquelle votre application s’exécute. Si la mémoire est presque pleine, elle peut empaqueter vos éléments déclarés aussi étroitement que possible. Dans d’autres cas, il peut aligner leurs adresses mémoire sur les limites matérielles naturelles pour optimiser les performances.
Largeur de la plateforme. L’attribution de stockage sur une plateforme 64 bits diffère de l’affectation 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, tel qu’une structure ou un tableau. Vous ne pouvez pas vous appuyer simplement sur l’ajout des allocations de stockage nominales des membres du type. En outre, il existe d’autres considérations, telles que les suivantes :
Frais généraux. Certains types composites ont des besoins en mémoire supplémentaires. Par exemple, un tableau utilise une mémoire supplémentaire pour le tableau lui-même et également pour chaque dimension. Sur une plateforme 32 bits, cette surcharge est actuellement de 12 octets plus 8 octets pour chaque dimension. Sur une plateforme 64 bits, cette exigence est doublée.
Disposition du stockage. Vous ne pouvez pas supposer en toute sécurité que l’ordre de stockage en mémoire est identique à votre ordre de déclaration. Vous ne pouvez même pas faire d’hypothèses sur l’alignement d’octets, comme 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.
Surcharge d’objet
Une Object
référence à n’importe quel type de données élémentaire ou composite utilise 4 octets en plus des données contenues dans le type de données.