Comment : utiliser une classe générique (Visual Basic)

Une classe qui accepte des paramètres de type est appelée classe générique. Si vous utilisez une classe générique, vous pouvez générer une classe construite à partir de celle-ci en fournissant un argument de type pour chacun de ces paramètres. Vous pouvez ensuite déclarer une variable du type classe construite, et vous pouvez créer une instance de la classe construite et l’assigner à cette variable.

En plus des classes, vous pouvez définir et utiliser des structures, interfaces, procédures et délégués génériques.

La procédure suivante prend une classe générique définie dans le .NET Framework et crée une instance à partir d’elle.

Pour utiliser une classe qui prend un paramètre de type

  1. Au début de votre fichier source, incluez une instruction Imports (espace de noms et type .NET) pour importer l’espace de noms System.Collections.Generic. Cela vous permet de faire référence à la classe System.Collections.Generic.Queue<T> sans avoir à la qualifier pleinement pour la différencier des autres classes de file d’attente, telles que System.Collections.Queue.

  2. Créez l’objet de façon normale, mais ajoutez (Of type) juste après le nom de la classe.

    L’exemple suivant utilise la même classe (System.Collections.Generic.Queue<T>) pour créer deux objets de file d’attente qui contiennent des éléments de différents types de données. Il ajoute des éléments à la fin de chaque file d’attente, puis supprime et affiche les éléments du début de chaque file d’attente.

    Public Sub usequeue()
      Dim queueDouble As New System.Collections.Generic.Queue(Of Double)
      Dim queueString As New System.Collections.Generic.Queue(Of String)
      queueDouble.Enqueue(1.1)
      queueDouble.Enqueue(2.2)
      queueDouble.Enqueue(3.3)
      queueDouble.Enqueue(4.4)
      queueString.Enqueue("First string of three")
      queueString.Enqueue("Second string of three")
      queueString.Enqueue("Third string of three")
      Dim s As String = "Queue of Double items (reported length " &
          CStr(queueDouble.Count) & "):"
      For i As Integer = 1 To queueDouble.Count
        s &= vbCrLf & CStr(queueDouble.Dequeue())
      Next i
      s &= vbCrLf & "Queue of String items (reported length " &
          CStr(queueString.Count) & "):"
      For i As Integer = 1 To queueString.Count
        s &= vbCrLf & queueString.Dequeue()
      Next i
      MsgBox(s)
    End Sub
    

Voir aussi