Freigeben über


Zusammengesetzte Datentypen (Visual Basic)

Zusätzlich zu den elementaren Datentypen von Visual Basic können Sie auch Elemente verschiedener Typen zusammenstellen, 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 von Strukturelementen oder eine Struktur mit Arraymember definieren.

Datentypen

Ein zusammengesetzter Typ unterscheidet sich vom Datentyp eines der zugehörigen Komponenten. Beispielsweise ist ein Array von Integer Elementen nicht vom Integer Datentyp.

Ein Arraydatentyp wird normalerweise mit dem Elementtyp, Klammern und Kommas nach Bedarf dargestellt. Beispielsweise wird ein eindimensionales Array von String Elementen als String()dargestellt, und ein zweidimensionales Array von Boolean Elementen wird als Boolean(,)dargestellt.

Strukturtypen

Es gibt keinen einzelnen Datentyp, der alle Strukturen umfasst. Stattdessen stellt jede Definition einer Struktur einen eindeutigen Datentyp dar, auch wenn zwei Strukturen identische Elemente in derselben Reihenfolge definieren. Wenn Sie jedoch zwei oder mehr Instanzen derselben Struktur erstellen, betrachtet Visual Basic diese als denselben Datentyp.

Tupel

Ein Tupel ist eine einfache Struktur, die zwei oder mehr Felder enthält, deren Typen vordefiniert sind. Tupel werden ab Visual Basic 2017 unterstützt. Tupel werden am häufigsten verwendet, um mehrere Werte aus einem einzelnen Methodenaufruf zurückzugeben, ohne Argumente durch Referenz zu übergeben oder die zurückgegebenen Werte in einer umfangreicheren Klasse oder Struktur zu verpacken. Weitere Informationen zu Tupeln finden Sie im Thema Tupel .

Arraytypen

Es gibt keinen einzelnen Datentyp, der alle Arrays umfasst. Der Datentyp einer bestimmten Instanz eines Arrays wird durch Folgendes bestimmt:

  • Die Tatsache, ein Array zu sein

  • Der Rang (Anzahl der Dimensionen) des Arrays

  • Der Elementtyp des Arrays

Insbesondere ist die Länge einer bestimmten Dimension nicht Teil des Datentyps der Instanz. Im folgenden Beispiel wird dies 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 werden die Arrayvariablen arrayA und arrayB als vom selben Datentyp Byte() angesehen, auch wenn sie auf unterschiedliche Längen initialisiert werden. Variablen arrayB und arrayC sind nicht vom gleichen Typ, da ihre Elementtypen unterschiedlich sind. Variablen arrayC und arrayD sind nicht vom gleichen Typ, weil ihre Ränge unterschiedlich sind. Variablen arrayD und arrayE haben denselben Typ – Short(,) – da ihre Ränge und Elementtypen identisch sind, auch wenn arrayD noch nicht initialisiert ist.

Weitere Informationen zu Arrays finden Sie unter Arrays.

Klassentypen

Es gibt keinen einzelnen Datentyp, der alle Klassen umfasst. Obwohl eine Klasse von einer anderen Klasse erben kann, handelt es sich jeweils um einen separaten Datentyp. Mehrere Instanzen derselben Klasse weisen denselben Datentyp auf. Wenn Sie eine Klasseninstanzvariable einem anderen zuweisen, weisen sie nicht nur denselben Datentyp auf, sie verweisen auf dieselbe Klasseninstanz im Arbeitsspeicher.

Weitere Informationen zu Klassen finden Sie unter "Objekte und Klassen".

Siehe auch