Dela via


Användardefinierad datatyp

Innehåller data i ett format som du definierar. -instruktionen Structure definierar formatet.

Tidigare versioner av Visual Basic stöder den användardefinierade typen (UDT). Den aktuella versionen expanderar UDT till en struktur. En struktur är en sammanlänkning av en eller flera medlemmar av olika datatyper. Visual Basic behandlar en struktur som en enda enhet, men du kan också komma åt dess medlemmar individuellt.

Kommentarer

Definiera och använda en strukturdatatyp när du behöver kombinera olika datatyper i en enda enhet, eller när ingen av de elementära datatyperna passar dina behov.

Standardvärdet för en strukturdatatyp består av kombinationen av standardvärdena för var och en av dess medlemmar.

Deklarationsformat

En strukturdeklaration börjar med structure-instruktionen och slutar med -instruktionenEnd Structure. - Structure instruktionen tillhandahåller namnet på strukturen, som också är identifieraren för den datatyp som strukturen definierar. Andra delar av koden kan använda den här identifieraren för att deklarera variabler, parametrar och funktionsreturvärden som ska vara av den här strukturens datatyp.

Deklarationerna mellan Structure - och End Structure -uttrycken definierar medlemmarna i strukturen.

Åtkomstnivåer för medlemmar

Du måste deklarera varje medlem med en Dim-instruktion eller en instruktion som anger åtkomstnivå, till exempel Offentlig, Vän eller Privat. Om du använder en Dim -instruktion är åtkomstnivån som standard offentlig.

Programmeringstips

  • Minnesförbrukning. Som med alla sammansatta datatyper kan du inte på ett säkert sätt beräkna den totala minnesförbrukningen för en struktur genom att lägga ihop de nominella lagringsallokeringarna för dess medlemmar. Dessutom kan du inte på ett säkert sätt anta att lagringsordningen i minnet är samma som din deklarationsordning. Om du behöver styra lagringslayouten för en struktur kan du använda StructLayoutAttribute attributet för -instruktionen Structure .

  • Interop-överväganden. Om du interagerar med komponenter som inte är skrivna för .NET Framework, till exempel Automation- eller COM-objekt, bör du komma ihåg att användardefinierade typer i andra miljöer inte är kompatibla med Visual Basic-strukturtyper.

  • Breddning. Det finns ingen automatisk konvertering till eller från någon strukturdatatyp. Du kan definiera konverteringsoperatorer i din struktur med hjälp av Operator-instruktionen och du kan deklarera varje konverteringsoperator Widening som eller Narrowing.

  • Skriv tecken. Strukturdatatyper har inget tecken av typen literal eller identifierartyp.

  • Ramverkstyp. Det finns ingen motsvarande typ i .NET Framework. Alla strukturer ärver från .NET Framework-klassen System.ValueType, men ingen enskild struktur motsvarar System.ValueType.

Exempel

Följande paradigm visar dispositionen av deklarationen av en struktur.

[Public | Protected | Friend | Protected Friend | Private] Structure structname
    {Dim | Public | Friend | Private} member1 As datatype1
    ' ...
    {Dim | Public | Friend | Private} memberN As datatypeN
End Structure

Se även