Share via


Door de gebruiker gedefinieerd gegevenstype

Bevat gegevens in een indeling die u definieert. De Structure instructie definieert de indeling.

Eerdere versies van Visual Basic ondersteunen het door de gebruiker gedefinieerde type (UDT). De huidige versie breidt de UDT uit naar een structuur. Een structuur is een samenvoeging van een of meer leden van verschillende gegevenstypen. Visual Basic behandelt een structuur als één eenheid, hoewel u ook afzonderlijk toegang hebt tot de leden.

Opmerkingen

Definieer en gebruik een structuurgegevenstype wanneer u verschillende gegevenstypen in één eenheid moet combineren of wanneer geen van de elementaire gegevenstypen aan uw behoeften voldoet.

De standaardwaarde van een structuurgegevenstype bestaat uit de combinatie van de standaardwaarden van elk van de leden.

Declaratie-indeling

Een structuurdeclaratie begint met de structuurinstructie en eindigt met de End Structure instructie. De Structure instructie levert de naam van de structuur, die ook de id is van het gegevenstype dat de structuur definieert. Andere onderdelen van de code kunnen deze id gebruiken om variabelen, parameters en functiewaarden te declareren die van het gegevenstype van deze structuur zijn.

De declaraties tussen de Structure en End Structure instructies definiëren de leden van de structuur.

Toegangsniveaus voor leden

U moet elk lid declareren met behulp van een Dim-instructie of een instructie die toegangsniveau opgeeft, zoals Openbaar, Vriend of Privé. Als u een Dim instructie gebruikt, wordt het toegangsniveau standaard openbaar.

Programmeertips

  • Geheugenverbruik. Net als bij alle samengestelde gegevenstypen kunt u het totale geheugenverbruik van een structuur niet veilig berekenen door de nominale opslagtoewijzingen van de leden samen te voegen. Bovendien kunt u er niet veilig van uitgaan dat de opslagvolgorde in het geheugen gelijk is aan uw declaratievolgorde. Als u de opslagindeling van een structuur wilt beheren, kunt u het StructLayoutAttribute kenmerk toepassen op de Structure instructie.

  • Overwegingen voor interoperabiliteit. Als u met onderdelen werkt die niet zijn geschreven voor .NET Framework, bijvoorbeeld Automation- of COM-objecten, moet u er rekening mee houden dat door de gebruiker gedefinieerde typen in andere omgevingen niet compatibel zijn met visual Basic-structuurtypen.

  • Verbreding. Er is geen automatische conversie naar of van een structuurgegevenstype. U kunt conversieoperators definiëren in uw structuur met behulp van de operatorinstructie en u kunt elke conversieoperator declareren om te zijn Widening of Narrowing.

  • Typ tekens. Structuurgegevenstypen hebben geen letterlijk type teken of id-type teken.

  • Type framework. Er is geen corresponderend type in .NET Framework. Alle structuren nemen over van de .NET Framework-klasse System.ValueType, maar er komt geen afzonderlijke structuur overeen System.ValueType.

Opmerking

In het volgende paradigma ziet u het overzicht van de declaratie van een structuur.

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

Zie ook