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

Boolean

Boolean

Abhängig von Implementierungsplattform

True oder False

Byte

Byte

1 Byte

0 bis 255 (ohne Vorzeichen)

Char (einzelnes Zeichen)

Char

2 Bytes

0 bis 65535 (ohne Vorzeichen).

Datum

DateTime

8 Bytes

0:00:00 (Mitternacht), 1. Januar 0001 bis 23:59:59, 31. Dezember 9999.

Decimal

Decimal

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)

Double

8 Bytes

-1,79769313486231570E+308 bis -4,94065645841246544E-324 † für negative Werte;

4,94065645841246544E-324 bis 1,79769313486231570E+308 † für positive Werte

Ganze Zahl

Int32

4 Bytes

-2.147.483.648 bis 2.147.483.647 (mit Vorzeichen)

Long (lange ganze Zahl)

Int64

8 Bytes

-9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 (9,2... E+18 †) (mit Vorzeichen)

Objekt

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.

SByte

SByte

1 Byte

-128 bis 127 (mit Vorzeichen)

Short (kurze ganze Zahl)

Int16

2 Bytes

-32.768 bis 32.767 (mit Vorzeichen)

Single (Gleitkommawert mit einfacher Genauigkeit)

Single

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

UInteger

UInt32

4 Bytes

0 bis 4.294.967.295 (ohne Vorzeichen)

ULong

UInt64

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.

UShort

UInt16

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.

HinweisHinweis

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.

47zceaw7.collapse_all(de-de,VS.110).gifZusammengesetzte 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.

47zceaw7.collapse_all(de-de,VS.110).gifZusatzaufwand 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)

StrConv

StructLayoutAttribute

Konzepte

Typzeichen (Visual Basic)

Effiziente Verwendung von Datentypen (Visual Basic)