Dela via


Sammansatta datatyper (Visual Basic)

Förutom de grundläggande datatyperna Visual Basic-tillförseln kan du även montera objekt av olika typer för att skapa sammansatta datatyper som strukturer, matriser och klasser. Du kan skapa sammansatta datatyper från elementära typer och från andra sammansatta typer. Du kan till exempel definiera en matris med strukturelement eller en struktur med matrismedlemmar.

Datatyper

En sammansatt typ skiljer sig från datatypen för någon av dess komponenter. En matris med Integer element är till exempel inte av Integer datatypen.

En matrisdatatyp representeras normalt med elementtypen, parenteser och kommatecken efter behov. Till exempel representeras en endimensionell matris med String element som String(), och en tvådimensionell matris med Boolean element representeras som Boolean(,).

Strukturtyper

Det finns ingen enskild datatyp som består av alla strukturer. I stället representerar varje definition av en struktur en unik datatyp, även om två strukturer definierar identiska element i samma ordning. Men om du skapar två eller flera instanser av samma struktur anser Visual Basic att de är av samma datatyp.

Tupplar

En tupplar är en lätt struktur som innehåller två eller flera fält vars typer är fördefinierade. Tupplar stöds från och med Visual Basic 2017. Tupplar används oftast för att returnera flera värden från ett enda metodanrop utan att behöva skicka argument med referens eller paketera de returnerade fälten i en mer tung viktklass eller struktur. Mer information om tupplar finns i avsnittet Tupplar .

Matristyper

Det finns ingen enskild datatyp som består av alla matriser. Datatypen för en viss instans av en matris bestäms av följande:

  • Faktumet att vara en matris

  • Matrisens rangordning (antal dimensioner)

  • Matrisens elementtyp

I synnerhet är längden på en viss dimension inte en del av instansens datatyp. I följande exempel visas detta.

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

I föregående exempel anses matrisvariabler arrayA och arrayB vara av samma datatyp – Byte() – även om de initieras till olika längder. arrayB Variabler och arrayC är inte av samma typ eftersom deras elementtyper är olika. Variabler arrayC och arrayD är inte av samma typ eftersom deras rangordning är olika. Variabler arrayD och arrayE har samma typ – Short(,) – eftersom deras rangordning och elementtyper är desamma, även om arrayD de ännu inte har initierats.

Mer information om matriser finns i Matriser.

Klasstyper

Det finns ingen enskild datatyp som består av alla klasser. Även om en klass kan ärva från en annan klass är var och en en separat datatyp. Flera instanser av samma klass har samma datatyp. Om du tilldelar en klassinstansvariabel till en annan, inte bara har samma datatyp, pekar de på samma klassinstans i minnet.

Mer information om klasser finns i Objekt och klasser.

Se även