Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V následující tabulce jsou uvedeny datové typy jazyka Visual Basic, jejich podpůrné typy modulu CLR (Common Language Runtime), nominální přidělení úložiště a jejich rozsahy hodnot.
| Typ jazyka Visual Basic | Struktura typů modulu CLR (Common Language Runtime) | Nominální přidělení úložiště | Rozsah hodnot |
|---|---|---|---|
| Booleova logika | Boolean | Závisí na implementaci platformy. |
True nebo False |
| bajt | Byte | 1 bajt | 0 až 255 (bez znaménka) |
| Znak (jeden znak) | Char | 2 bajty | 0 až 65535 (bez znaménka) |
| Date | DateTime | 8 bajtů | 0:00:00 (půlnoc) 1. ledna 0001 až 11:59:59 pm 31. prosince 9999 |
| Desetinné číslo | Decimal | 16 bajtů | 0 až +/-79 228 162 514 264 337 593 543 950 335 (+/-7,9...E+28) † bez desetinné čárky; 0 až +/-7,9228162514264337593543935 s 28 místy vpravo od desetinné čárky; nejmenší nenulové číslo je +/-0,000000000000000000000000001 (+/-1E-28) † |
| Double (dvojitá přesnost s plovoucí desetinnou čárkou) | Double | 8 bajtů | -1,79769313486231570E+308 až -4,94065645841246544E-324 † pro záporné hodnoty; 4.94065645841246544E-324 až 1,79769313486231570E+308 † pro kladné hodnoty |
| celočíselné | Int32 | 4 bajty | -2 147 483 648 až 2 147 483 647 (podepsáno) |
| Dlouhé (dlouhé celé číslo) | Int64 | 8 bajtů | -9 223 372 036 854 775 808 až 9 223 372 036 854 775 807 (9,2...E+18 †) (podepsáno) |
| Objekt | Object (třída) | 4 bajty na 32bitové platformě 8 bajtů na 64bitové platformě |
Libovolný typ může být uložen v proměnné typu. Object |
| SByte | SByte | 1 bajt | -128 až 127 (podepsáno) |
| Krátké (krátké celé číslo) | Int16 | 2 bajty | -32 768 až 32 767 (podepsáno) |
| Jednoduché (s plovoucí desetinnou čárkou s jednoduchou přesností) | Single | 4 bajty | -3,4028235E+38 až -1,401298E-45 † pro záporné hodnoty; 1.401298E-45 až 3,4028235E+38 † pro kladné hodnoty |
| Řetězec (proměnná délka) | String (třída) | Závisí na implementaci platformy. | 0 až přibližně 2 miliardy znaků Unicode |
| Neznaménkový integer | UInt32 | 4 bajty | 0 až 4 294 967 295 (bez znaménka) |
| ULong | UInt64 | 8 bajtů | 0 až 18 446 744 073 709 551 615 (1,8...E+19 †) (bez znaménka) |
| Uživatelem definované (struktura) | (dědí z ValueType) | Závisí na implementaci platformy. | Každý člen struktury má rozsah určený svým datovým typem a nezávisle na rozsazích ostatních členů. |
| UShort | UInt16 | 2 bajty | 0 až 65 535 (bez znaménka) |
† Ve vědeckém zápisu "E" odkazuje na moc 10. Proto 3,56E+2 označuje 3,56 x 102 nebo 356 a 3,56E-2 označuje 3,56 / 102 nebo 0,0356.
Poznámka:
U řetězců obsahujících text použijte funkci k převodu StrConv z jednoho textového formátu na jiný.
Kromě zadávání datového typu v příkazu deklarace můžete datový typ některých programovacích prvků vynutit pomocí znaku typu. Viz znaky typu.
Spotřeba paměti
Když deklarujete základní datový typ, není bezpečné předpokládat, že jeho spotřeba paměti je stejná jako její nominální přidělení úložiště. Důvodem jsou následující aspekty:
Přiřazení úložiště Modul CLR (Common Language Runtime) může přiřadit úložiště na základě aktuálních charakteristik platformy, na které se vaše aplikace spouští. Pokud je paměť téměř plná, může zabalit deklarované prvky co nejblíže dohromady. V jiných případech může zarovnat adresy paměti k přirozeným hardwarovým hranicím za účelem optimalizace výkonu.
Šířka platformy. Přiřazení úložiště na 64bitové platformě se liší od přiřazení na 32bitové platformě.
Složené datové typy
Stejné aspekty platí pro každý člen složeného datového typu, jako je struktura nebo pole. Nemůžete se spoléhat na jednoduché sčítání nominálních přidělení úložiště členů typu. Kromě toho existují i další aspekty, například:
Režie. Některé složené typy mají další požadavky na paměť. Například pole používá pro samotnou matici další paměť a také pro každou dimenzi. Na 32bitové platformě je tato režie aktuálně 12 bajtů plus 8 bajtů pro každou dimenzi. Na 64bitové platformě se tento požadavek zdvojnásobí.
Rozložení úložiště Nemůžete bezpečně předpokládat, že pořadí úložiště v paměti je stejné jako vaše pořadí deklarací. Nelze ani předpokládat zarovnání bajtů, jako je 2 bajt nebo 4 bajtová hranice. Pokud definujete třídu nebo strukturu a potřebujete řídit rozložení úložiště jejích členů, můžete tento atribut použít StructLayoutAttribute u třídy nebo struktury.
Režie objektu
Odkaz Object na jakýkoli základní nebo složený datový typ kromě dat obsažených v datovém typu používá 4 bajty.