INSTANTIATING GENERIC CLASSES
The previous sections have already shown a few examples of how to use a generic class. The program declares the class and includes whatever data types are required in an Of clause. The following code shows how a program might create a generic list of strings:
Imports System.Collections.Generic
...
Dim names As New List(Of String)
To pass parameters to a generic class’s constructor, add a second set of parentheses and any parameters after the type specifications. The following statement creates an IntStringList object, passing it the types Integer, String, and Employee. It calls the class’s constructor, passing it the value 100.
Dim the_employees As New IntStringList(Of Integer, String, Employee)(100)
If the program needs to use only a few generic classes (for example, a single collection of strings), this isn’t too bad. If the program needs to use many instances of the class, however, the code becomes cluttered.
For example, suppose that the TreeNode class shown in the following code represents a node in a tree. Its MyData field holds some piece of data, and its Children list holds references to child nodes.
Public Class TreeNode(Of T)
Public MyData As T
Public Children As New List(Of TreeNode(Of T))
Public Sub New(ByVal new_data As T)
MyData = new_data
End Sub
End Class
The following code uses this class to build a small tree of Employee objects:
Dim root As New TreeNode(Of Employee)(New Employee("Annabelle", "Ant")) Dim child1 As New TreeNode(Of ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access