Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt die Typparameter für ein generisches Programmierelement an. Mehrere Parameter werden durch Kommas getrennt. Es folgt die Syntax für einen Typparameter.
Syntax
[genericmodifier] typename [ As constraintlist ]
Bestandteile
| Begriff | Definition |
|---|---|
genericmodifier |
Wahlfrei. Kann nur in generischen Schnittstellen und Delegaten verwendet werden. Sie können einen Typkovariant deklarieren, indem Sie das Schlüsselwort "Out " oder "Contravariant" mithilfe des Schlüsselworts "In " verwenden. Siehe Kovarianz und Kontravarianz. |
typename |
Erforderlich. Name des Typparameters. Dies ist ein Platzhalter, der durch einen definierten Typ ersetzt werden soll, der durch das entsprechende Typargument bereitgestellt wird. |
constraintlist |
Wahlfrei. Liste der Anforderungen, die den Datentyp einschränken, für typenameden bereitgestellt werden kann. Wenn Sie über mehrere Einschränkungen verfügen, schließen Sie sie in geschweifte geschweifte Klammern ({ }) ein, und trennen Sie sie durch Kommas. Sie müssen die Einschränkungsliste mit dem Schlüsselwort "As " einführen. Sie verwenden As nur einmal, am Anfang der Liste. |
Bemerkungen
Jedes generische Programmierelement muss mindestens einen Typparameter verwenden. Ein Typparameter ist ein Platzhalter für einen bestimmten Typ (ein konstruiertes Element), der vom Clientcode angegeben wird, wenn er eine Instanz des generischen Typs erstellt. Sie können eine generische Klasse, Struktur, Schnittstelle, Prozedur oder Stellvertretung definieren.
Weitere Informationen zum Definieren eines generischen Typs finden Sie unter Generic Types in Visual Basic. Weitere Informationen zu Typparameternamen finden Sie unter "Deklarierte Elementnamen".
Regeln
Runde Klammern. Wenn Sie eine Typparameterliste angeben, müssen Sie sie in Klammern einschließen und die Liste mit dem Schlüsselwort "Of " einführen. Sie verwenden
Ofnur einmal, am Anfang der Liste.Zwänge. Eine Liste von Einschränkungen für einen Typparameter kann die folgenden Elemente in einer beliebigen Kombination enthalten:
Eine beliebige Anzahl von Schnittstellen. Der angegebene Typ muss jede Schnittstelle in dieser Liste implementieren.
Höchstens eine Klasse. Der angegebene Typ muss von dieser Klasse erben.
das Schlüsselwort
New. Der angegebene Typ muss einen parameterlosen Konstruktor verfügbar machen, auf den Ihr generischer Typ zugreifen kann. Dies ist nützlich, wenn Sie einen Typparameter durch eine oder mehrere Schnittstellen einschränken. Ein Typ, der Schnittstellen implementiert, macht nicht notwendigerweise einen Konstruktor verfügbar, und abhängig von der Zugriffsebene eines Konstruktors kann der Code innerhalb des generischen Typs möglicherweise nicht darauf zugreifen.Entweder das
ClassSchlüsselwort oder dasStructureSchlüsselwort. DasClassSchlüsselwort schränkt einen generischen Typparameter ein, um festzulegen, dass jedes Typargument, das an ihn übergeben wird, ein Verweistyp, z. B. eine Zeichenfolge, ein Array oder ein Delegat oder ein objekt, das aus einer Klasse erstellt wurde. Das Schlüsselwort schränkt einen generischen Typparameter ein, um festzulegen, dass jedes Typargument, das an ihn übergeben wird, ein Werttyp ist, z. B. eine Struktur, Eine Aufzählung oder einen elementaren Datentyp.TheStructurekeyword constrains a generic type to require that any type passed to it be a value type, for example a structure, enumeration, or elementary data type. Sie können nicht sowohl als auchClassStructurenicht in dasselbeconstraintlisteinschließen.
Der angegebene Typ muss jede Anforderung erfüllen, die
constraintlistSie einschließen.Einschränkungen für jeden Typparameter sind unabhängig von Einschränkungen für andere Typparameter.
Verhalten
Compile-Time Ersetzung. Wenn Sie einen konstruierten Typ aus einem generischen Programmierelement erstellen, geben Sie einen definierten Typ für jeden Typparameter an. Der Visual Basic-Compiler ersetzt den typ für jedes Vorkommen innerhalb des
typenamegenerischen Elements.Fehlen von Einschränkungen. Wenn Sie keine Einschränkungen für einen Typparameter angeben, ist ihr Code auf die Vorgänge und Elemente beschränkt, die vom Objektdatentyp für diesen Typparameter unterstützt werden.
Beispiel 1
Das folgende Beispiel zeigt eine Skelettdefinition einer generischen Wörterbuchklasse, einschließlich einer Skelettfunktion zum Hinzufügen eines neuen Eintrags zum Wörterbuch.
Public Class dictionary(Of entryType, keyType As {IComparable, IFormattable, New})
Public Sub add(ByVal et As entryType, ByVal kt As keyType)
Dim dk As keyType
If kt.CompareTo(dk) = 0 Then
End If
End Sub
End Class
Beispiel 2
Da dictionary es sich um einen generischen Code handelt, kann der Code, der es verwendet, eine Vielzahl von Objekten daraus erstellen, die jeweils dieselbe Funktionalität aufweisen, jedoch auf einen anderen Datentyp angewendet werden. Das folgende Beispiel zeigt eine Codezeile, die ein dictionary Objekt mit String Einträgen und Integer Schlüsseln erstellt.
Dim dictInt As New dictionary(Of String, Integer)
Beispiel 3
Das folgende Beispiel zeigt die entsprechende Skelettdefinition, die vom vorherigen Beispiel generiert wird.
Public Class dictionary
Public Sub Add(ByVal et As String, ByVal kt As Integer)
Dim dk As Integer
If kt.CompareTo(dk) = 0 Then
End If
End Sub
End Class