Visual Basic .NET Language
Generics
Suche…
Erstellen Sie eine generische Klasse
Es wird ein generischer Typ erstellt, um sich anzupassen, sodass für verschiedene Datentypen auf dieselbe Funktionalität zugegriffen werden kann.
Public Class SomeClass(Of T)
Public Sub doSomething(newItem As T)
Dim tempItem As T
' Insert code that processes an item of data type t.
End Sub
End Class
Instanz einer generischen Klasse
Durch das Erstellen einer Instanz derselben Klasse mit einem anderen angegebenen Typ ändert sich das Interface der Klasse abhängig vom angegebenen Typ.
Dim theStringClass As New SomeClass(Of String)
Dim theIntegerClass As New SomeClass(Of Integer)
Definieren Sie eine 'generische' Klasse
Eine generische Klasse ist eine Klasse, die sich an einen später angegebenen Typ anpasst, so dass dieselbe Funktionalität für verschiedene Typen angeboten werden kann.
In diesem grundlegenden Beispiel wird eine generische Klasse erstellt. Es gibt ein Sub, das den generischen Typ T verwendet. Während der Programmierung dieser Klasse kennen wir den Typ von T. In diesem Fall hat T alle Eigenschaften von Object.
Public Class SomeClass(Of T)
Public Sub doSomething(newItem As T)
Dim tempItem As T
' Insert code that processes an item of data type t.
End Sub
End Class
Verwenden Sie eine generische Klasse
In diesem Beispiel werden 2 Instanzen der SomeClass-Klasse erstellt. Je nach Typ haben die 2 Instanzen eine andere Schnittstelle:
Dim theStringClass As New SomeClass(Of String)
Dim theIntegerClass As New SomeClass(Of Integer)
Die bekannteste generische Klasse ist List (of)
Begrenzen Sie die möglichen Typen
Die möglichen Typen, die an eine neue Instanz von SomeClass übergeben werden, müssen SomeBaseClass erben. Dies kann auch eine Schnittstelle sein. Die Merkmale von SomeBaseClass sind innerhalb dieser Klassendefinition verfügbar.
Public Class SomeClass(Of T As SomeBaseClass)
Public Sub DoSomething(newItem As T)
newItem.DoSomethingElse()
' Insert code that processes an item of data type t.
End Sub
End Class
Public Class SomeBaseClass
Public Sub DoSomethingElse()
End Sub
End Class
Erstellen Sie eine neue Instanz des angegebenen Typs
Das Erstellen einer neuen Bedeutung eines generischen Typs kann zur Kompilierzeit durchgeführt / überprüft werden.
Public Class SomeClass(Of T As {New})
Public Function GetInstance() As T
Return New T
End Function
End Class
Oder bei begrenzten Typen:
Public Class SomeClass(Of T As {New, SomeBaseClass})
Public Function GetInstance() As T
Return New T
End Function
End Class
Public Class SomeBaseClass
End Class
Die baseClass (wenn keine Object angegeben ist) muss einen Konstruktor ohne Parameter haben.
Dies kann auch zur Laufzeit durch Reflektion erfolgen