Visual Basic .NET Language
Merkloos product
Zoeken…
Maak een generieke klasse
Er wordt een generiek type gemaakt om aan te passen, zodat dezelfde functionaliteit toegankelijk kan zijn voor verschillende gegevenstypen.
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
Exemplaar van een generieke klasse
Door een instantie van dezelfde klasse te maken met een ander gegeven type, verandert de interface van de klasse afhankelijk van het gegeven type.
Dim theStringClass As New SomeClass(Of String)
Dim theIntegerClass As New SomeClass(Of Integer)
Definieer een 'generieke' klasse
Een generieke klasse is een klasse die zich aanpast aan een later gegeven type, zodat dezelfde functionaliteit aan verschillende typen kan worden aangeboden.
In dit basisvoorbeeld wordt een generieke klasse gemaakt. Het heeft een sub die het generieke type T gebruikt. Bij het programmeren van deze klasse kennen we het type T niet. In dit geval heeft T alle kenmerken van 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
Gebruik een generieke klasse
In dit voorbeeld zijn er 2 instanties gemaakt van de SomeClass Class. Afhankelijk van het gegeven type hebben de 2 instanties een andere interface:
Dim theStringClass As New SomeClass(Of String)
Dim theIntegerClass As New SomeClass(Of Integer)
De meest bekende generieke klasse is Lijst (van)
Beperk de mogelijke typen gegeven
De mogelijke typen die worden doorgegeven aan een nieuwe instantie van SomeClass moeten SomeBaseClass erven. Dit kan ook een interface zijn. De kenmerken van SomeBaseClass zijn toegankelijk binnen deze klassedefinitie.
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
Maak een nieuwe instantie van het gegeven type
U kunt tijdens het compileren een nieuwe intentie van een generiek type maken.
Public Class SomeClass(Of T As {New})
Public Function GetInstance() As T
Return New T
End Function
End Class
Of met beperkte types:
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
De baseClass (als er geen object is gegeven) moet een parameter zonder constructor hebben.
Dit kan ook worden gedaan tijdens runtime door reflectie