Freigeben über


User-Defined Datentyp

Enthält Daten in einem format, das Sie definieren. Die Structure Anweisung definiert das Format.

In früheren Versionen von Visual Basic wird der benutzerdefinierte Typ (UDT) unterstützt. Die aktuelle Version erweitert udT auf eine Struktur. Eine Struktur ist eine Verkettung eines oder mehrerer Elemente verschiedener Datentypen. Visual Basic behandelt eine Struktur als einzelne Einheit, obwohl Sie auch einzeln auf die Member zugreifen können.

Bemerkungen

Definieren und verwenden Sie einen Strukturdatentyp, wenn Sie verschiedene Datentypen in einer einzelnen Einheit kombinieren müssen oder wenn keiner der elementaren Datentypen Ihren Anforderungen entspricht.

Der Standardwert eines Strukturdatentyps besteht aus der Kombination der Standardwerte der einzelnen Elemente.

Deklarationsformat

Eine Strukturdeklaration beginnt mit der Structure-Anweisung und endet mit der End Structure Anweisung. Die Structure Anweisung stellt den Namen der Struktur dar, die auch der Bezeichner des Datentyps ist, den die Struktur definiert. Andere Teile des Codes können diesen Bezeichner verwenden, um Variablen, Parameter und Rückgabewerte dieser Struktur als Datentyp dieser Struktur zu deklarieren.

Die Deklarationen zwischen den Structure Und-Anweisungen End Structure definieren die Member der Struktur.

Mitgliedszugriffsebenen

Sie müssen jedes Mitglied mit einer Dim-Anweisung oder einer Anweisung deklarieren, die zugriffsebene angibt, z. B. Public, Friend oder Private. Wenn Sie eine Dim Anweisung verwenden, wird standardmäßig die Zugriffsstufe "öffentlich" verwendet.

Programmiertipps

  • Arbeitsspeicherverbrauch. Wie bei allen zusammengesetzten Datentypen können Sie den gesamtspeicherverbrauch einer Struktur nicht sicher berechnen, indem Sie die nominalen Speicherzuordnungen ihrer Member hinzufügen. Darüber hinaus können Sie nicht sicher davon ausgehen, dass die Reihenfolge des Speichers im Arbeitsspeicher mit Ihrer Deklarationsreihenfolge identisch ist. Wenn Sie das Speicherlayout einer Struktur steuern müssen, können Sie das StructLayoutAttribute Attribut auf die Structure Anweisung anwenden.

  • Überlegungen zur Interoperabilität. Wenn Sie mit Komponenten interfacieren, die nicht für .NET Framework geschrieben wurden, z. B. Automatisierungs- oder COM-Objekte, denken Sie daran, dass benutzerdefinierte Typen in anderen Umgebungen nicht mit Visual Basic-Strukturtypen kompatibel sind.

  • Aufweitung. Es gibt keine automatische Konvertierung in oder aus einem Strukturdatentyp. Sie können Konvertierungsoperatoren für Ihre Struktur mithilfe der Operator-Anweisung definieren, und Sie können jeden Konvertierungsoperator Widening als oder Narrowingdeklarieren.

  • Geben Sie Zeichen ein. Strukturdatentypen weisen kein Literaltyp- oder Bezeichnertypzeichen auf.

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

Beispiel

Das folgende Paradigma zeigt die 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