Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In der folgenden Tabelle sind die Visual Basic-Datentypen, die unterstützenden Common Language Runtime-Typen, die nominale Speicherzuweisung und die Wertebereiche aufgeführt.
| Visual Basic-Typ | Struktur des Typs "Common Language Runtime" | Nominale Speicherzuweisung | Wertebereich |
|---|---|---|---|
| Boolean | Boolean | Hängt von der Implementierungsplattform ab |
True oder False |
| Byte | Byte | 1 Byte | 0 bis 255 (nicht signiert) |
| Zeichen (einzelnes Zeichen) | Char | 2 Bytes | 0 bis 65535 (nicht signiert) |
| Datum | DateTime | 8 Bytes | 0:00:00 (Mitternacht) am 1. Januar 0001 bis 11:59:59 Uhr am 31. Dezember 9999 |
| Dezimal | Decimal | 16 Bytes | 0 bis +/-79.228.162.514.264.337.593.543.950.335 (+/-7,9...E+28) † ohne Dezimalkomma; 0 bis +/-7,9228162514264337593543950335 mit 28 Stellen rechts vom Dezimaltrennzeichen; Kleinste Nichtzeronummer ist +/-0.0000000000000000000000000001 (+/-1E-28) † |
| Double (Gleitkomma 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 |
| Integer | Int32 | 4 Byte | -2.147.483.648 bis 2.147.483.647 (signiert) |
| 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 †) (signiert) |
| Objekt | Object (Klasse) | 4 Bytes auf der 32-Bit-Plattform 8 Bytes auf 64-Bit-Plattform |
Jeder Typ kann in einer Variablen des Typs gespeichert werden. Object |
| SByte | SByte | 1 Byte | -128 bis 127 (signiert) |
| Kurz (kurze ganze Zahl) | Int16 | 2 Bytes | -32.768 bis 32.767 (signiert) |
| Single (Gleitkomma mit einfacher Genauigkeit) | Single | 4 Byte | -3,4028235E+38 bis -1,401298E-45 † für negative Werte; 1.401298E-45 bis 3.4028235E+38 † für positive Werte |
| Zeichenfolge (variable Länge) | String (Klasse) | Hängt von der Implementierungsplattform ab | 0 bis ca. 2 Milliarden Unicode-Zeichen |
| UInteger- | UInt32 | 4 Byte | 0 bis 4.294.967.295 (nicht signiert) |
| ULong- | UInt64 | 8 Bytes | 0 bis 18.446.744.073.709.551.615 (1,8...E+19 †) (nicht signiert) |
| Benutzerdefiniert (Struktur) | (erbt von ValueType) | Hängt von der Implementierungsplattform ab | Jedes Element der Struktur weist einen Bereich auf, der durch den Datentyp bestimmt wird und unabhängig von den Bereichen der anderen Member ist. |
| UShort- | UInt16 | 2 Bytes | 0 bis 65.535 (nicht signiert) |
† In der wissenschaftlichen Schreibweise bezieht sich "E" auf eine Potenz von 10. 3,56E+2 bedeutet also 3,56 x 102 oder 356, und 3,56E-2 bedeutet 3,56 / 102 oder 0,0356.
Hinweis
Verwenden Sie für Zeichenfolgen, die Text enthalten, die StrConv Funktion, um von einem Textformat in ein anderes zu konvertieren.
Zusätzlich zur Angabe eines Datentyps in einer Deklarationsanweisung können Sie den Datentyp einiger Programmierelemente mithilfe eines Typzeichens erzwingen. Siehe "Zeichen eingeben".
Arbeitsspeicherverbrauch
Wenn Sie einen elementaren Datentyp deklarieren, ist es nicht sicher, davon auszugehen, dass die Speicherauslastung mit der nominalen Speicherzuweisung übereinstimmt. Dies liegt an den folgenden Überlegungen:
Speicherzuweisung. Die Common Language Runtime kann Speicher basierend auf den aktuellen Merkmalen der Plattform zuweisen, auf der Ihre Anwendung ausgeführt wird. Wenn der Arbeitsspeicher fast voll ist, kann es Ihre deklarierten Elemente so eng wie möglich packen. In anderen Fällen können sie ihre Speicheradressen an natürliche Hardwaregrenzen ausrichten, um die Leistung zu optimieren.
Plattformbreite. Die Speicherzuweisung auf einer 64-Bit-Plattform unterscheidet sich von der Zuweisung auf einer 32-Bit-Plattform.
Zusammengesetzte Datentypen
Dieselben Überlegungen gelten für jedes Element eines zusammengesetzten Datentyps, z. B. einer Struktur oder eines Arrays. Sie können sich nicht darauf verlassen, einfach die nominalen Speicherzuweisungen der Mitglieder des Typs hinzuzufügen. Darüber hinaus gibt es weitere Überlegungen, z. B. folgendes:
Gemeinkosten. Einige zusammengesetzte Typen verfügen über zusätzliche Speicheranforderungen. Ein Array verwendet beispielsweise zusätzlichen Arbeitsspeicher für das Array selbst und auch für jede Dimension. Auf einer 32-Bit-Plattform beträgt dieser Aufwand derzeit 12 Bytes plus 8 Bytes für jede Dimension. Auf einer 64-Bit-Plattform wird diese Anforderung verdoppelt.
Speicherlayout. Sie können nicht sicher davon ausgehen, dass die Reihenfolge des Speichers im Arbeitsspeicher mit ihrer Reihenfolge der Deklaration identisch ist. Sie können keine Annahmen über die Byteausrichtung treffen, z. B. eine 2-Byte- oder 4-Byte-Grenze. Wenn Sie eine Klasse oder Struktur definieren und das Speicherlayout seiner Member steuern müssen, können Sie das StructLayoutAttribute Attribut auf die Klasse oder Struktur anwenden.
Objektaufwand
Ein Object Verweis auf einen beliebigen elementaren oder zusammengesetzten Datentyp verwendet zusätzlich zu den daten, die im Datentyp enthalten sind, 4 Byte.