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
ofNarrowing
.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