Delen via


Samengestelde gegevenstypen (Visual Basic)

Naast de elementaire gegevenstypen die Visual Basic levert, kunt u ook items van verschillende typen samenstellen om samengestelde gegevenstypen te maken, zoals structuren, matrices en klassen. U kunt samengestelde gegevenstypen maken van elementaire typen en van andere samengestelde typen. U kunt bijvoorbeeld een matrix met structuurelementen of een structuur met matrixleden definiëren.

Gegevenstypen

Een samengesteld type verschilt van het gegevenstype van een van de onderdelen. Een matrix met Integer elementen is bijvoorbeeld niet van het Integer gegevenstype.

Een matrixgegevenstype wordt normaal gesproken weergegeven met behulp van het elementtype, haakjes en komma's, indien nodig. Een eendimensionale matrix met String elementen wordt bijvoorbeeld weergegeven als String(), en een tweedimensionale matrix met Boolean elementen wordt weergegeven als Boolean(,).

Structuurtypen

Er is geen enkel gegevenstype dat alle structuren omvat. In plaats daarvan vertegenwoordigt elke definitie van een structuur een uniek gegevenstype, zelfs als twee structuren identieke elementen in dezelfde volgorde definiëren. Als u echter twee of meer exemplaren van dezelfde structuur maakt, worden deze in Visual Basic beschouwd als van hetzelfde gegevenstype.

Tuples

Een tuple is een lichtgewicht structuur die twee of meer velden bevat waarvan de typen vooraf zijn gedefinieerd. Tuples worden ondersteund vanaf Visual Basic 2017. Tuples worden meestal gebruikt voor het retourneren van meerdere waarden uit één methode-aanroep zonder argumenten door te geven per verwijzing of het verpakken van de geretourneerde velden in een meer zware klasse of structuur. Zie het onderwerp Tuples voor meer informatie over tuples.

Matrixtypen

Er is geen enkel gegevenstype dat alle matrices omvat. Het gegevenstype van een bepaald exemplaar van een matrix wordt bepaald door het volgende:

  • Het feit dat het een matrix is

  • De rang (aantal dimensies) van de matrix

  • Het elementtype van de matrix

Met name de lengte van een bepaalde dimensie maakt geen deel uit van het gegevenstype van het exemplaar. In het volgende voorbeeld ziet u dit.

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) {}  

In het voorgaande voorbeeld worden matrixvariabelen arrayA beschouwd als arrayB hetzelfde gegevenstype, Byte() ook al worden ze geïnitialiseerd tot verschillende lengten. Variabelen arrayB en arrayC zijn niet van hetzelfde type omdat hun elementtypen verschillen. Variabelen arrayC en arrayD zijn niet van hetzelfde type omdat hun rangschikkingen verschillen. Variabelen arrayD en arrayE hetzelfde type hebben, Short(,) omdat hun rangschikkingen en elementtypen hetzelfde zijn, ook al arrayD zijn ze nog niet geïnitialiseerd.

Zie Matrices voor meer informatie over matrices.

Klassetypen

Er is geen enkel gegevenstype dat alle klassen omvat. Hoewel één klasse kan overnemen van een andere klasse, is elk een afzonderlijk gegevenstype. Meerdere exemplaren van dezelfde klasse hebben hetzelfde gegevenstype. Als u één variabele van het klasse-exemplaar aan een andere toewijst, hebben ze niet alleen hetzelfde gegevenstype, maar wijzen ze naar hetzelfde klasse-exemplaar in het geheugen.

Zie Objecten en klassen voor meer informatie over klassen.

Zie ook