Zusammengesetzte Datentypen (Visual Basic)

Zusätzlich zu den elementaren Datentypen von Visual Basic können Sie auch Elemente unterschiedlicher Typen kombinieren, um zusammengesetzte Datentypen wie Strukturen, Arrays und Klassen zu erstellen. Sie können zusammengesetzte Datentypen aus elementaren Typen und aus anderen zusammengesetzten Typen erstellen. Sie können beispielsweise ein Array aus Strukturelementen oder eine Struktur mit Arraymembern definieren.

Datentypen

Ein zusammengesetzter Datentyp unterscheidet sich vom Datentyp seiner einzelnen Komponenten. Ein Array aus Integer-Elementen weist beispielsweise nicht den Datentyp Integer auf.

Ein Arraydatentyp setzt sich normalerweise aus dem Elementtyp, Klammern und Kommas zusammen. Beispielsweise wird ein eindimensionales Array aus String-Elementen als String() angegeben und ein zweidimensionales Array aus Boolean-Elementen als Boolean(,).

Strukturtypen

Es gibt keinen universellen Datentyp für alle Strukturen. Jede Definition einer Struktur resultiert in einem einzigartigen Datentyp, selbst wenn zwei Strukturen identische Elemente in derselben Reihenfolge definieren. Wenn Sie jedoch zwei oder mehr Instanzen derselben Struktur erstellen, ordnet Visual Basic diesen denselben Datentyp zu.

Tupel

Ein Tupel ist eine schlanke Struktur, die zwei oder mehr Felder mit vordefinierten Typen enthält. Tupel werden ab Visual Basic 2017 unterstützt. Tupel werden in der Regel verwendet, um mehrere Werte aus einem einzigen Methodenaufruf zurückzugeben, ohne die Argumente nach Verweis übergeben zu müssen oder die zurückgegebenen Felder in eine umfangreichere Klasse oder Struktur zu packen. Im Artikel Tupel finden Sie weitere Informationen zu Tupeln.

Arraytypen

Es gibt keinen universellen Datentyp für alle Arrays. Der Datentyp einer bestimmten Arrayinstanz richtet sich nach Folgendem:

  • der Tatsache, dass es sich um ein Array handelt

  • dem Rang (Anzahl der Dimensionen) des Arrays

  • dem Elementtyp des Arrays

Genauer gesagt ist die Länge einer bestimmten Dimension nicht Teil des Datentyps der Instanz. Dies wird anhand des folgenden Beispiels veranschaulicht.

Dim arrayA( ) As Byte = New Byte(12) {}  
Dim arrayB( ) As Byte = New Byte(100) {}  
Dim arrayC( ) As Short = New Short(100) {}  
Dim arrayD( , ) As Short  
Dim arrayE( , ) As Short = New Short(4, 10) {}  

Im vorherigen Beispiel wurde den Arrayvariablen arrayA und arrayB derselbe Datentyp (Byte()) zugeordnet, obwohl diese mit unterschiedlichen Längen initialisiert werden. Die Variablen arrayB und arrayC weisen nicht denselben Typ auf, da ihre Elemente unterschiedlich sind. Die Variablen arrayC und arrayD weisen nicht denselben Typ auf, da ihre Ränge unterschiedlich sind. Die Variablen arrayD und arrayE weisen denselben Typ (Short(,)) auf, da ihre Ränge und Elemente gleich sind, obwohl arrayD noch nicht initialisiert wurde.

Weitere Informationen zu Arrays finden Sie unter Arrays.

Klassentypen

Es gibt keinen universellen Datentyp für alle Klassen. Obwohl Klassen voneinander erben können, weist jede einen eigenen Datentyp auf. Mehrere Instanzen derselben Klasse weisen denselben Datentyp auf. Wenn Sie Klasseninstanzvariablen einander zuordnen, weisen diese nicht nur denselben Datentyp auf, sondern zeigen auch auf dieselbe Klasseninstanz im Arbeitsspeicher.

Weitere Informationen zu Klassen finden Sie unter Objekte und Klassen.

Siehe auch