Generics
¢' Generic MyStack class
¢Public Class MyStack(Of T)
¢ Private frames As T()
¢ Private pointer _
¢ As Integer = 0
¢
¢ Public Sub New( _
¢ ByVal size As Integer)
¢ frames = New T(size) {}
¢ End Sub
¢
¢ Public Sub Push( _
¢ ByVal frame As T)
¢ frames(pointer) = frame
¢ pointer += 1
¢ End Sub
¢ Public Function Pop() As T
¢ pointer -= 1
¢ Return frames(pointer)
¢ End Function
¢End Class
¢
¢Dim s As New _
¢ MyStack(Of Integer)(7)
¢
¢For f As Integer = 0 To 6
¢ s.Push(f)
¢Next f
¢' Prints 6543210
¢For f As Integer = 0 To 6
¢ Console.Write( _
¢ s.Pop().ToString())
¢Next f

| Este código mostra qual o código fonte para uma classe Stack genérica. O ponto chave é o tipo do parâmetro modelo, neste caso o <T> é usado para um tipo interno armazenado (campo frames), o construtor, o tipo de parâmetro para o método Push e o tipo de retorno para o método Pop.