Adattípus összegzése (Visual Basic)

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

Visual Basic típusa Gyakori nyelvi futtatókörnyezet-típusstruktúra Névleges tárterület-kiosztás Értéktartomány
Logikai Boolean A platform implementálásától függ True vagy False
Bájt Byte 1 bájt 0–255 (aláíratlan)
Karakter (egyetlen karakter) Char 2 bájt 0–65535 (aláíratlan)
Date DateTime 8 bájt 0:00:00 (éjfél) január 1-én 0001 és 11:59:59 között 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 nem nulla szám +/-0,000000000000000000000000001 (+/-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ékekhez
Egész szám Int32 4 bájt -2 147 483 648–2 147 483 647 között (aláírt)
Hosszú (hosszú egész szám) Int64 8 bájt -9 223 372 036 854 775 808 – 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ú változó tárolható 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ékekhez
Sztring (változó hosszúságú) String (osztály) A platform implementálásától függ 0–körülbelül 2 milliárd Unicode-karakter
Egész szám 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, és 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és szerint az "E" a 10-et jelenti. Tehát a 3.56E+2 a 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ítsa át az egyik szövegformátumot egy másikra.

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

Memóriahasználat

Elemi adattípus deklarálásakor nem biztonságos azt feltételezni, hogy a memóriahasználata megegyezik a névleges tárterület-lefoglalással. Ennek oka a következő szempontok:

  • Storage 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.

  • Platform szélessége. Storage hozzárendelés egy 64 bites platformon eltér a 32 bites platform hozzárendelésétől.

Összetett adattípusok

Ugyanezek a szempontok vonatkoznak az összetett adattípusok minden tagjára, például egy szerkezetre 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.

  • Storage elrendezés. Nem feltételezheti biztonságosan, hogy a memória tárolási sorrendje megegyezik a deklarációs sorrenddel. A bájtok igazításával kapcsolatos feltételezéseket, például a két 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