Freigeben über


Benutzerdefinierter Datentyp

Aktualisiert: November 2007

Enthält Daten in einem Format, das Sie definieren. Das Format wird durch die Structure-Anweisung definiert.

Frühere Versionen von Visual Basic unterstützen den benutzerdefinierten Typ (UDT). In der aktuellen Version wird der UDT zu einer Struktur erweitert. Strukturen sind Verkettungen mehrerer Member verschiedener Datentypen. Visual Basic behandelt eine Struktur als einzelne Einheit, dennoch können Sie auch auf einzelne Member der Struktur zugreifen.

Hinweise

Definieren und verwenden Sie einen Structure-Datentyp, wenn Sie verschiedene Datentypen zu einer Einheit kombinieren müssen oder wenn keiner der elementaren Datentypen Ihren Anforderungen entspricht.

Der Standardwert eines Structure-Datentyps ergibt sich aus der Kombination der Standardwerte seiner einzelnen Member.

Deklarationsformat

Eine Strukturdeklaration beginnt mit der Structure-Anweisung und endet mit der EndStructure-Anweisung. Die Structure-Anweisung gibt den Namen der Struktur an. Dieser ist auch der Bezeichner des Datentyps, der durch die Struktur definiert wird. Von anderen Abschnitten des Codes kann dieser Bezeichner dazu verwendet werden, um Variablen, Parameter und Rückgabewerte von Funktionen als Datentyp dieser Struktur zu deklarieren.

Die Deklarationen zwischen der Structure-Anweisung und der EndStructure-Anweisung definieren die Member der Struktur.

Memberzugriffsebenen

Sie müssen jeden Member mit einer Dim-Anweisung (Visual Basic) oder einer Anweisung deklarieren, die die Zugriffsebene angibt, beispielsweise Public (Visual Basic), Friend (Visual Basic) oder Private (Visual Basic). Wenn Sie eine Dim-Anweisung verwenden, wird als Zugriffsebene standardmäßig Public festgelegt.

Programmiertipps

  • Speicherverbrauch. Wie bei allen zusammengesetzten Datentypen können Sie den gesamten Speicherverbrauch auch bei Strukturen durch Addition der nominalen Speicherzuordnungen ihrer Member nicht zuverlässig berechnen. Darüber hinaus können Sie nicht davon ausgehen, dass die Member im Speicher in derselben Reihenfolge wie in der Deklaration angeordnet sind. Wenn Sie das Speicherlayout einer Struktur steuern müssen, können Sie das StructLayoutAttribute-Attribut auf die Structure-Anweisung anwenden.

  • Interop-Überlegungen. Wenn eine Schnittstelle mit Komponenten vorhanden ist, die nicht für .NET-Framework geschrieben wurden (z. B. Automatisierungs- oder COM-Objekte) ist zu beachten, dass benutzerdefinierte Typen in anderen Umgebungen nicht mit Visual Basic-Strukturtypen kompatibel sind.

  • Erweiterung. Es gibt keine automatische Konvertierung in einen oder aus einem Strukturdatentyp. Mit der Operator-Anweisung können Sie Konvertierungsoperatoren der Struktur definieren, und Sie können jeden Konvertierungsoperator als Widening oder Narrowing deklarieren.

  • Typzeichen. Strukturdatentypen verfügen über kein Literaltypzeichen oder Typkennzeichen.

  • Framework-Typ. Es gibt keinen entsprechenden Typ in .NET Framework. Alle Strukturen erben von der .NET Framework-Klasse System.ValueType, allerdings entspricht keine einzelne Struktur System.ValueType.

Beispiel

Das folgende Beispiel zeigt die Gliederung der Deklaration einer 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

Siehe auch

Konzepte

Effiziente Verwendung von Datentypen

Referenz

Datentyp: Zusammenfassung (Visual Basic)

ValueType

Funktionen für die Typkonvertierung

Konvertierung: Zusammenfassung

Structure-Anweisung

Widening

Narrowing

StructLayoutAttribute

Weitere Ressourcen

Strukturen: Benutzerdefinierte Datentypen