Visual Basic .NET Language
Generics
Szukaj…
Utwórz klasę ogólną
Typ ogólny jest tworzony w celu dostosowania, aby ta sama funkcjonalność była dostępna dla różnych typów danych.
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
Wystąpienie klasy ogólnej
Po utworzeniu instancji tej samej klasy z podanym innym typem interfejs klasy zmienia się w zależności od danego typu.
Dim theStringClass As New SomeClass(Of String)
Dim theIntegerClass As New SomeClass(Of Integer)
Zdefiniuj klasę „ogólną”
Klasa ogólna to klasa, która dostosowuje się do późniejszego typu, aby ta sama funkcjonalność mogła być oferowana różnym typom.
W tym podstawowym przykładzie tworzona jest klasa ogólna. Ma okręt podwodny, który używa ogólnego typu T. Podczas programowania tej klasy nie znamy typu T. W tym przypadku T ma wszystkie cechy 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
Użyj klasy ogólnej
W tym przykładzie utworzono 2 instancje klasy SomeClass. W zależności od typu 2 instancje mają inny interfejs:
Dim theStringClass As New SomeClass(Of String)
Dim theIntegerClass As New SomeClass(Of Integer)
Najbardziej znaną klasą ogólną jest List (of)
Ogranicz podane możliwe typy
Możliwe typy przekazane do nowej instancji SomeClass muszą dziedziczyć SomeBaseClass. Może to być również interfejs. Charakterystyka SomeBaseClass jest dostępna w ramach tej definicji klasy.
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
Utwórz nową instancję danego typu
Tworzenie nowej intencji typu ogólnego można wykonać / sprawdzić w czasie kompilacji.
Public Class SomeClass(Of T As {New})
Public Function GetInstance() As T
Return New T
End Function
End Class
Lub z ograniczonymi typami:
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
Klasa baseClass (jeśli nie jest podana jako Object) musi mieć konstruktor bez parametrów.
Można to również zrobić w środowisku wykonawczym poprzez odbicie