Souhrn datových typů (Visual Basic)Data Type Summary (Visual Basic)

V následující tabulce jsou uvedeny Visual Basic datových typů, jejich podporují typy společného jazykového modulu runtime, jejich jmenovité přidělení úložiště a jejich rozsahy hodnot.The following table shows the Visual Basic data types, their supporting common language runtime types, their nominal storage allocation, and their value ranges.

Typ Visual BasicVisual Basic type Struktura typů společného jazykového modulu runtimeCommon language runtime type structure Přidělení nominálního úložištěNominal storage allocation Rozsah hodnotValue range
DatovéhoBoolean Boolean Závisí na implementaci platformyDepends on implementing platform True nebo FalseTrue or False
BytovéByte Byte 1 bajt1 byte 0 až 255 (bez znaménka)0 through 255 (unsigned)
Char (jeden znak)Char (single character) Char 2 bajty2 bytes 0 až 65535 (bez znaménka)0 through 65535 (unsigned)
DatumDate DateTime 8 bajtů8 bytes 0:00:00 (půlnoc) 1. ledna 0001 až 11:59:59 odp. prosince 99990:00:00 (midnight) on January 1, 0001 through 11:59:59 PM on December 31, 9999
NotaciDecimal Decimal 16 bajtů16 bytes od 0 do +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9...E + 28) bez desetinné čárky; 0 až +/-7.9228162514264337593543950335 s 28 místy napravo od desetinné čárky;0 through +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9...E+28) with no decimal point; 0 through +/-7.9228162514264337593543950335 with 28 places to the right of the decimal;

nejmenší nenulové číslo je +/-0,0000000000000000000000000001 (+/-1E-28) .smallest nonzero number is +/-0.0000000000000000000000000001 (+/-1E-28)
Double (plovoucí desetinná čárka s dvojitou přesností)Double (double-precision floating-point) Double 8 bajtů8 bytes -1.79769313486231570 e + 308 do-4.94065645841246544 E-324 pro záporné hodnoty;-1.79769313486231570E+308 through -4.94065645841246544E-324 for negative values;

4.94065645841246544 e-324 až 1.79769313486231570 E + 308 pro kladné hodnoty4.94065645841246544E-324 through 1.79769313486231570E+308 for positive values
ČíslaInteger Int32 4 bajty4 bytes -2 147 483 648 až 2 147 483 647 (podepsáno)-2,147,483,648 through 2,147,483,647 (signed)
Long (dlouhé celé číslo)Long (long integer) Int64 8 bajtů8 bytes -9223372036854775808 až 9 223 372 036 854 775 807 (9.2... E + 18 ) (podepsáno)-9,223,372,036,854,775,808 through 9,223,372,036,854,775,807 (9.2...E+18 ) (signed)
PředmětůObject Object (třída)Object (class) 4 bajty na 32 bitové platformě4 bytes on 32-bit platform

8 bajtů na 64. bitová platforma8 bytes on 64-bit platform
Libovolný typ může být uložen v proměnné typu ObjectAny type can be stored in a variable of type Object
SByteSByte SByte 1 bajt1 byte -128 až 127 (podepsáno)-128 through 127 (signed)
Short (krátké celé číslo)Short (short integer) Int16 2 bajty2 bytes -32 768 až 32 767 (podepsáno)-32,768 through 32,767 (signed)
Jedna (plovoucí desetinná čárka s jednoduchou přesností)Single (single-precision floating-point) Single 4 bajty4 bytes -3.4028235 e + + 38 do-1.401298 E-45 pro záporné hodnoty;-3.4028235E+38 through -1.401298E-45 for negative values;

1.401298 e-45 až 3.4028235 E + 38 pro kladné hodnoty1.401298E-45 through 3.4028235E+38 for positive values
Řetězec (s proměnlivou délkou)String (variable-length) String (třída)String (class) Závisí na implementaci platformyDepends on implementing platform 0 až přibližně 2 000 000 000 znaků Unicode0 to approximately 2 billion Unicode characters
UInteger –UInteger UInt32 4 bajty4 bytes 0 až 4 294 967 295 (bez znaménka)0 through 4,294,967,295 (unsigned)
ULongULong UInt64 8 bajtů8 bytes 0 až 18446744073709551615 (1.8... E + 19 ) (bez znaménka)0 through 18,446,744,073,709,551,615 (1.8...E+19 ) (unsigned)
Uživatelsky definované (struktura)User-Defined (structure) (dědí z ValueType)(inherits from ValueType) Závisí na implementaci platformyDepends on implementing platform Každý člen struktury má rozsah určený jeho datovým typem a nezávisle na rozsahu ostatních členů.Each member of the structure has a range determined by its data type and independent of the ranges of the other members
UShortUShort UInt16 2 bajty2 bytes 0 až 65 535 (bez znaménka)0 through 65,535 (unsigned)

V matematickém zápisu"E" odkazuje na sílu 10. In scientific notation, "E" refers to a power of 10. Takže 3.56 E + 2 znamená 3,56 x 102 nebo 356 a 3.56 e-2 znamená 3,56/102 nebo 0,0356.So 3.56E+2 signifies 3.56 x 102 or 356, and 3.56E-2 signifies 3.56 / 102 or 0.0356.

Poznámka

Pro řetězce obsahující text použijte funkci StrConv pro převod z jednoho textového formátu do jiného.For strings containing text, use the StrConv function to convert from one text format to another.

Kromě určení datového typu v příkazu deklarace můžete vynutit datový typ některých programovacích prvků pomocí znaku typu.In addition to specifying a data type in a declaration statement, you can force the data type of some programming elements by using a type character. Viz znaky typu.See Type Characters.

Spotřeba pamětiMemory Consumption

Pokud deklarujete základní datový typ, není bezpečné předpokládat, že jeho využití paměti je stejné jako jeho jmenovité přidělení úložiště.When you declare an elementary data type, it is not safe to assume that its memory consumption is the same as its nominal storage allocation. To je způsobeno následujícími požadavky:This is due to the following considerations:

  • Přiřazení úložištěStorage Assignment. Modul CLR (Common Language Runtime) může přiřazovat úložiště na základě aktuálních vlastností platformy, na které je aplikace spuštěná.The common language runtime can assign storage based on the current characteristics of the platform on which your application is executing. Pokud je paměť skoro plná, může vaše deklarované prvky nabalit co nejpřesněji.If memory is nearly full, it might pack your declared elements as closely together as possible. V ostatních případech může zarovnávat jejich paměťové adresy s přirozenými hranicemi hardwaru za účelem optimalizace výkonu.In other cases it might align their memory addresses to natural hardware boundaries to optimize performance.

  • Šířka platformy.Platform Width. Přiřazení úložiště na 64 platformě se liší od přiřazení na 32 platformě.Storage assignment on a 64-bit platform is different from assignment on a 32-bit platform.

Složené datové typyComposite Data Types

Stejné požadavky platí pro každého člena složeného datového typu, jako je například struktura nebo pole.The same considerations apply to each member of a composite data type, such as a structure or an array. Nemůžete spoléhat na pouhé přidání nominálního přidělení úložiště členů typu.You cannot rely on simply adding together the nominal storage allocations of the type's members. Kromě toho existují i další okolnosti, například následující:Furthermore, there are other considerations, such as the following:

  • Zvyšoval.Overhead. Některé složené typy mají další požadavky na paměť.Some composite types have additional memory requirements. Například pole používá dodatečnou paměť pro samotné pole a také pro každou dimenzi.For example, an array uses extra memory for the array itself and also for each dimension. Na 32 platformě je tato režie aktuálně 12 bajtů plus 8 bajtů pro každou dimenzi.On a 32-bit platform, this overhead is currently 12 bytes plus 8 bytes for each dimension. Na 64 platformě se tento požadavek zdvojnásobuje.On a 64-bit platform this requirement is doubled.

  • Rozložení úložištěStorage Layout. Nemůžete bezpečně předpokládat, že pořadí úložiště v paměti je stejné jako vaše pořadí deklarace.You cannot safely assume that the order of storage in memory is the same as your order of declaration. Nemůžete ani dělat předpoklady o zarovnání bajtů, jako je například hranice 2 nebo 4 bajty.You cannot even make assumptions about byte alignment, such as a 2-byte or 4-byte boundary. Pokud definujete třídu nebo strukturu a potřebujete řídit rozložení úložiště členů, můžete použít atribut StructLayoutAttribute pro třídu nebo strukturu.If you are defining a class or structure and you need to control the storage layout of its members, you can apply the StructLayoutAttribute attribute to the class or structure.

Režie objektuObject Overhead

Object odkazující na jakýkoli základní nebo složený datový typ používá kromě dat obsažených v datovém typu 4 bajty.An Object referring to any elementary or composite data type uses 4 bytes in addition to the data contained in the data type.

Viz také:See also