Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In de volgende tabel ziet u de Visual Basic-gegevenstypen, de ondersteunende algemene typen taalruntime, de nominale opslagtoewijzing en de waardebereiken.
| Visual Basic-type | Algemene structuur van runtime-type taal | Nominale opslagtoewijzing | Waardebereik |
|---|---|---|---|
| Boolean | Boolean | Afhankelijk van het implementeren van het platform |
True of False |
| Byte | Byte | 1 byte | 0 tot en met 255 (niet ondertekend) |
| Teken (enkel teken) | Char | 2 bytes | 0 tot en met 65535 (niet ondertekend) |
| Datum | DateTime | 8 bytes | 0:00:00 (middernacht) op 1 januari 0001 tot en met 11:59:59 uur op 31 december 9999 |
| decimale | Decimal | 16 bytes | 0 tot en met 79.228.162.514.264.337.593.543.950.335 (+/-7,9...E+28) † zonder decimale komma; 0 tot en met +/-7,9228162514264337593543950335 met 28 plaatsen rechts van het decimaalteken; kleinste niet-nulgetal is +/-0,0000000000000000000000000001 (+/-1E-28) † |
| Dubbel (drijvende komma met dubbele precisie) | Double | 8 bytes | -1.79769313486231570E+308 tot en met -4,9406564584124654E-324 † voor negatieve waarden; 4.9406564584124654E-324 tot en met 1.79769313486231570E+308 † voor positieve waarden |
| geheel getal | Int32 | 4 bytes | -2.147.483.648 tot en met 2.147.483.647 (ondertekend) |
| Lang (lang geheel getal) | Int64 | 8 bytes | -9.223.372.036.854.775.808 tot en met 9.223.372.036.854.775.807 (9.2...E+18 †) (ondertekend) |
| Object | Object (klasse) | 4 bytes op 32-bits platform 8 bytes op 64-bits platform |
Elk type kan worden opgeslagen in een variabele van het type Object |
| SByte | SByte | 1 byte | -128 tot en met 127 (ondertekend) |
| Kort (kort geheel getal) | Int16 | 2 bytes | -32.768 tot en met 32.767 (ondertekend) |
| Enkel (drijvende komma met één precisie) | Single | 4 bytes | -3.4028235E+38 tot en met -1.401298E-45 † voor negatieve waarden; 1.401298E-45 tot en met 3,4028235E+38 † voor positieve waarden |
| Tekenreeks (lengte van variabele) | String (klasse) | Afhankelijk van het implementeren van het platform | 0 tot ongeveer 2 miljard Unicode-tekens |
| UInteger- | UInt32 | 4 bytes | 0 tot en met 4.294.967.295 (niet ondertekend) |
| ULong- | UInt64 | 8 bytes | 0 tot en met 18.446.744.073.709.551.615 (1,8...E+19 †) (niet ondertekend) |
| Door de gebruiker gedefinieerd (structuur) | (neemt over van ValueType) | Afhankelijk van het implementeren van het platform | Elk lid van de structuur heeft een bereik bepaald door het gegevenstype en onafhankelijk van de bereiken van de andere leden |
| UShort- | UInt16 | 2 bytes | 0 tot en met 65.535 (niet-ondertekend) |
† In wetenschappelijke notatie verwijst "E" naar een macht van 10. Dus 3.56E+2 geeft 3,56 x 102 of 356 aan en 3.56E-2 geeft 3,56 / 102 of 0,0356 aan.
Opmerking
Voor tekenreeksen die tekst bevatten, gebruikt u de functie om van de StrConv ene tekstindeling naar de andere te converteren.
Naast het opgeven van een gegevenstype in een declaratie-instructie, kunt u het gegevenstype van sommige programmeerelementen afdwingen met behulp van een typeteken. Zie Tekens typen.
Geheugenverbruik
Wanneer u een elementair gegevenstype declareert, is het niet veilig om ervan uit te gaan dat het geheugenverbruik hetzelfde is als de nominale opslagtoewijzing. Dit komt door de volgende overwegingen:
Opslagtoewijzing. De algemene taalruntime kan opslag toewijzen op basis van de huidige kenmerken van het platform waarop uw toepassing wordt uitgevoerd. Als het geheugen bijna vol is, kunnen uw gedeclareerde elementen zo dicht mogelijk bij elkaar worden verpakt. In andere gevallen kunnen hun geheugenadressen worden afgestemd op natuurlijke hardwaregrenzen om de prestaties te optimaliseren.
Platformbreedte. Opslagtoewijzing op een 64-bits platform verschilt van de toewijzing op een 32-bits platform.
Samengestelde gegevenstypen
Dezelfde overwegingen zijn van toepassing op elk lid van een samengesteld gegevenstype, zoals een structuur of een matrix. U kunt niet vertrouwen op het samenvoegen van de nominale opslagtoewijzingen van de leden van het type. Daarnaast zijn er andere overwegingen, zoals:
Bovengronds. Sommige samengestelde typen hebben aanvullende geheugenvereisten. Een matrix gebruikt bijvoorbeeld extra geheugen voor de matrix zelf en ook voor elke dimensie. Op een 32-bits platform is deze overhead momenteel 12 bytes plus 8 bytes voor elke dimensie. Op een 64-bits platform wordt deze vereiste verdubbeld.
Opslagindeling. U kunt niet veilig aannemen dat de opslagvolgorde in het geheugen gelijk is aan uw declaratievolgorde. U kunt zelfs geen veronderstellingen maken over byte-uitlijning, zoals een grens van 2 bytes of 4 bytes. Als u een klasse of structuur definieert en u de opslagindeling van de leden wilt beheren, kunt u het StructLayoutAttribute kenmerk toepassen op de klasse of structuur.
Objectoverhead
Een Object verwijzing naar een elementair of samengesteld gegevenstype maakt gebruik van 4 bytes naast de gegevens in het gegevenstype.