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.