Datentyp: Zusammenfassung (Visual Basic)
In der folgenden Tabelle sind die Datentypen von Visual Basic, die Typen der Common Language Runtime, die sie unterstützen, und die entsprechenden nominalen Speicherbelegungen und Wertbereiche aufgeführt.
Visual Basic-Datentyp |
Common Language Runtime-Typstruktur |
Nominale Speicherbelegung |
Wertbereich |
---|---|---|---|
Abhängig von Implementierungsplattform |
True oder False |
||
1 Byte |
0 bis 255 (ohne Vorzeichen) |
||
Char (einzelnes Zeichen) |
2 Bytes |
0 bis 65535 (ohne Vorzeichen). |
|
8 Bytes |
0:00:00 (Mitternacht), 1. Januar 0001 bis 23:59:59, 31. Dezember 9999. |
||
16 Bytes |
0 bis +/-79.228.162.514.264.337.593.543.950.335 (+/-7,9...E+28) † ohne Dezimalzeichen; 0 bis +/-7,9228162514264337593543950335 mit 28 Stellen rechts vom Dezimalzeichen; kleinste Zahl ungleich 0 (null) ist +/-0,0000000000000000000000000001 (+/-1E-28) † |
||
Double (Gleitkommawert mit doppelter Genauigkeit) |
8 Bytes |
-1,79769313486231570E+308 bis -4,94065645841246544E-324 † für negative Werte; 4,94065645841246544E-324 bis 1,79769313486231570E+308 † für positive Werte |
|
4 Bytes |
-2.147.483.648 bis 2.147.483.647 (mit Vorzeichen) |
||
Long (lange ganze Zahl) |
8 Bytes |
-9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 (9,2... E+18 †) (mit Vorzeichen) |
|
Object (Klasse) |
4 Bytes auf 32-Bit-Plattform 8 Bytes auf 64-Bit-Plattform |
In einer Variablen vom Typ Object kann jeder beliebige Typ gespeichert werden. |
|
1 Byte |
-128 bis 127 (mit Vorzeichen) |
||
Short (kurze ganze Zahl) |
2 Bytes |
-32.768 bis 32.767 (mit Vorzeichen) |
|
Single (Gleitkommawert mit einfacher Genauigkeit) |
4 Bytes |
-3,4028235E+38 bis -1,401298E-45 † für negative Werte; 1,401298E-45 bis 3,4028235E+38 † für positive Werte |
|
String (variable Länge) |
String (Klasse) |
Abhängig von Implementierungsplattform |
0 bis ungefähr 2 Milliarden Unicode-Zeichen |
4 Bytes |
0 bis 4.294.967.295 (ohne Vorzeichen) |
||
8 Bytes |
0 bis 18.446.744.073.709.551.615 (1,8... E+19 †) (ohne Vorzeichen) |
||
Benutzerdefiniert (Struktur) |
(erbt von ValueType) |
Abhängig von Implementierungsplattform |
Jeder Member in der Struktur hat einen Wertbereich, der von seinem Datentyp bestimmt wird. Dieser ist unabhängig von den Wertbereichen der anderen Member. |
2 Bytes |
0 bis 65.535 (ohne Vorzeichen) |
† In wissenschaftlicher Schreibweise verweist "E" auf eine Leistung von 10.Dementsprechend bezeichnet 3.56E+2 3.56 x 10 2 oder 356 und 3.56E-2 3.56 / 102 oder 0,0356 an.
Hinweis |
---|
Bei Zeichenfolgen mit Text verwenden Sie die StrConv-Funktion zum Konvertieren zwischen verschiedenen Textformaten. |
Zusätzlich zur Angabe eines Datentyps in einer Deklarationsanweisung, können Sie den Datentyp einiger Programmierelemente erzwingen, indem Sie ein Typzeichen verwenden.Siehe Typzeichen (Visual Basic).
Speicherverbrauch
Wenn ein elementarer Datentyp deklariert wird, können Sie nicht davon ausgehen, dass sein Speicherverbrauch dem seiner nominalen Speicherbelegung entspricht.Dies lässt sich wie folgt begründen:
Speicherzuweisung. Die Speicherzuweisung durch die Common Language Runtime geschieht auf der Grundlage der Merkmale der Plattform, auf der die Anwendung ausgeführt wird.Wenn der Arbeitsspeicher beinahe erschöpft ist, werden die deklarierten Elemente u. U. möglichst eng zusammengepackt.In anderen Fällen werden die Speicheradressen möglicherweise an den gegebenen Hardwarebegrenzungen ausgerichtet, um die Leistung zu optimieren.
Plattformbreite. Die Speicherzuweisung auf einer 64-Bit-Plattform unterscheidet sich von der Speicherzuweisung auf einer 32-Bit-Plattform.
Zusammengesetzte Datentypen
Dasselbe gilt für die einzelnen Member zusammengesetzter Datentypen, wie Strukturen und Arrays.Die einfache Addition der nominalen Speicherbelegungen aller Member des Datentyps liefert kein zuverlässiges Ergebnis.Überdies sind andere Dinge zu berücksichtigen, z. B. Folgendes:
Zusatzaufwand. Bestimmte zusammengesetzte Typen erfordern darüber hinaus zusätzlichen Speicher.Arrays verwenden beispielsweise zusätzlichen Speicher für das Array selbst und die einzelnen Dimensionen.Auf einer 32-Bit-Plattform beträgt diese zusätzliche Kapazität derzeit 12 Bytes plus 8 Bytes pro Dimension.Auf einer 64-Bit-Plattform verdoppeln sich die Anforderungen.
Speicherlayout. Sie können nicht davon ausgehen, dass die Member im Speicher in der gleichen Reihenfolge wie in der Deklaration angeordnet sind.Sie können nicht einmal Vorhersagen über die Byteausrichtung (z. B. 2-Byte- oder 4-Byte-Grenze) treffen.Wenn Sie eine Klasse oder Struktur definieren und das Speicherlayout deren Member steuern müssen, können Sie das StructLayoutAttribute-Attribut auf die Klasse oder Struktur anwenden.
Zusatzaufwand für den Object-Datentyp
Ein Object, das auf einen elementaren oder zusammengesetzten Datentyp verweist, verwendet zusätzlich zu den im Datentyp enthaltenen Daten weitere 4 Bytes.
Siehe auch
Referenz
Funktionen für die Typkonvertierung (Visual Basic)
Konvertierung: Zusammenfassung (Visual Basic)