Freigeben über


Benutzerdefinierter Datentyp

Enthält Daten in einem von Ihnen definierten Format. Die Structure-Anweisung definiert das Format.

Frühere Versionen von Visual Basic unterstützen den benutzerdefinierten Typ (User-Defined Type, UDT). Die aktuelle Version erweitert den benutzerdefinierten Typ in eine Struktur. Eine Struktur ist eine Verkettung von mindestens einem Member verschiedener Datentypen. Visual Basic behandelt eine Struktur als einzelne Einheit, obwohl Sie auch einzeln auf ihre 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 Member.

Deklarationsformat

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

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

Zugriffsebenen für Member

Sie müssen jeden Member mit einer Dim-Anweisung oder einer Anweisung deklarieren, die die Zugriffsebene angibt, z. B. Public, Friend oder Private. Wenn Sie eine Dim-Anweisung verwenden, ist die Zugriffsebene standardmäßig öffentlich.

Programmiertipps

  • Speicherverbrauch. Wie bei allen zusammengesetzten Datentypen können Sie den gesamten Speicherverbrauch auch bei Strukturen nicht dadurch zuverlässig berechnen, indem Sie die nominalen Speicherbelegungen ihrer Member addieren. 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 Sie Komponenten einbinden, die nicht für .NET Framework geschrieben wurden, z. B. Automatisierung oder COM-Objekte, sollten Sie beachten, dass benutzerdefinierte Typen in anderen Umgebungen nicht mit Visual Basic-Strukturtypen kompatibel sind.

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

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

  • Framework-Typ. In .NET Framework ist kein entsprechender Typ vorhanden. Alle Strukturen erben von der .NET Framework-Klasse System.ValueType, aber keine einzelne Struktur entspricht System.ValueType.

Beispiel

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

Weitere Informationen