Megosztás a következőn keresztül:


Adattípus összegzése (Visual Basic)

Az alábbi táblázat a Visual Basic adattípusait, a támogatott közös nyelvi futtatókörnyezet-típusokat, a névleges tárterület-foglalásukat és az értéktartományukat mutatja be.

Visual Basic típus Gyakori nyelvi futtatókörnyezet-típusstruktúra Névleges tárterület-kiosztás Értéktartomány
boolean Boolean A platform implementálásától függ True vagy False
Byte Byte 1 bájt 0–255 (aláíratlan)
Karakter (egyetlen karakter) Char 2 bájt 0–65535 (aláíratlan)
Dátum DateTime 8 bájt 0:00:00 (éjfél) január 1-jén 0:59:59-ig 9999. december 31-én
decimális Decimal 16 bájt 0 és +/-79 228 162 514 264 337 593 543 950 335 (+/-7,9...E+28) tizedesvessző nélkül; 0–+/-7,9228162514264337593543950335 28 hellyel a tizedesvessző jobb oldalán;

legkisebb nemzero szám +/-0,00000000000000000000000001 (+/-1E-28)
Dupla (dupla pontosságú lebegőpontos) Double 8 bájt -1.79769313486231570E+308–-4.94065645841246544E-324 negatív értékek esetén;

4.94065645841246544E-324-1,79769313486231570E+308 pozitív értékek esetén
egész szám Int32 4 bájt -2 147 483 648–2 147 483 647 (aláírt)
Hosszú (hosszú egész szám) Int64 8 bájt -9 223 372 036 854 775 808 és 9 223 372 036 854 775 807 (9,2...E+18 ) (aláírt)
Objektum Object (osztály) 4 bájt 32 bites platformon

8 bájt 64 bites platformon
Bármilyen típus tárolható egy típusváltozóban Object
SByte SByte 1 bájt -128–127 (aláírt)
Rövid (rövid egész szám) Int16 2 bájt -32 768–32 767 (aláírt)
Egypontos (egypontos lebegőpontos) Single 4 bájt -3.4028235E+38–-1.401298E-45 negatív értékek esetén;

1.401298E-45–3,4028235E+38 pozitív értékek esetén
Sztring (változóhossz) String (osztály) A platform implementálásától függ 0–körülbelül 2 milliárd Unicode-karakter
UInteger UInt32 4 bájt 0–4 294 967 295 (aláíratlan)
ULong UInt64 8 bájt 0–18 446 744 073 709 551 615 (1,8...E+19 ) (aláíratlan)
Felhasználó által definiált (struktúra) (örökli a ValueType) A platform implementálásától függ A struktúra minden tagja rendelkezik egy adattípus által meghatározott tartománysal, amely független a többi tag tartományától
UShort UInt16 2 bájt 0–65 535 (aláíratlan)

A tudományos jelölésben az "E" a 10-et jelenti. Tehát a 3.56E+2 3,56 x 102 vagy 356, a 3.56E-2 pedig a 3.56 / 102 vagy 0.0356 jelzést jelöli.

Megjegyzés:

Szövegeket tartalmazó sztringek esetén a StrConv függvény használatával alakíthatja át az egyik szövegformátumot egy másikra.

Az adattípus deklarációs utasításban való megadása mellett bizonyos programozási elemek adattípusát is kényszerítheti egy típuskaraktérrel. Lásd : Típuskarakterek.

Memóriahasználat

Elemi adattípus deklarálása esetén nem biztonságos feltételezni, hogy a memóriahasználata megegyezik a névleges tárterület-lefoglalással. Ez a következő szempontoknak köszönhető:

  • Tárterület-hozzárendelés. A közös nyelvi futtatókörnyezet a tárolót annak a platformnak az aktuális jellemzői alapján rendelheti hozzá, amelyen az alkalmazás fut. Ha a memória majdnem megtelt, a lehető legszorosabban összecsomagolhatja a deklarált elemeket. Más esetekben a teljesítmény optimalizálása érdekében a memóriacímeket a természetes hardverhatárokhoz igazíthatja.

  • Platformszélesség. A 64 bites platformon a tárterület-hozzárendelés eltér a 32 bites platformon való hozzárendeléstől.

Összetett adattípusok

Ugyanezek a szempontok vonatkoznak az összetett adattípusok minden egyes tagjára, például egy struktúrára vagy tömbre. Nem hagyatkozhat arra, hogy egyszerűen összeadja a típus tagjainak névleges tárterület-lefoglalásait. Egyéb szempontokat is figyelembe kell venni, például a következőket:

  • Felső. Egyes összetett típusok további memóriakövetelményekkel rendelkeznek. Egy tömb például extra memóriát használ magának a tömbnek és az egyes dimenzióknak is. Egy 32 bites platformon ez a többletterhelés jelenleg 12 bájt plusz 8 bájt minden dimenzióhoz. Egy 64 bites platformon ez a követelmény megduplázódik.

  • Tárolási elrendezés. Nem feltételezheti biztonságosan, hogy a memória tárolási sorrendje megegyezik a deklarálási sorrenddel. A bájtok igazításával kapcsolatos feltételezéseket, például a 2 bájtos vagy a 4 bájtos határt sem lehet feltételezni. Ha osztályt vagy struktúrát definiál, és szabályoznia kell a tagok tárolási elrendezését, alkalmazhatja az StructLayoutAttribute attribútumot az osztályra vagy a struktúrára.

Objektumterhelés

Bármely Object elemi vagy összetett adattípusra való hivatkozás 4 bájtot használ az adattípusban található adatokon kívül.

Lásd még