Sdílet prostřednictvím


Souhrn datových typů (Visual Basic)

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.

Viz také