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)

Geben Sie hier die Bildbeschreibung ein

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)

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

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



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow