Partager via


Comment : créer une méthode d'extension Add utilisée par un initialiseur de collection (Visual Basic)

Lorsque vous utilisez un initialiseur de collection pour créer une collection, le compilateur Visual Basic recherche une méthode Add du type de collection pour laquelle les paramètres de la méthode Add correspondent aux types des valeurs dans l’initialiseur de collection. Cette méthode Add est utilisée pour remplir la collection avec les valeurs de l’initialiseur de collection.

S’il n’existe aucune méthode correspondante Add et qu’il est impossible de modifier le code de la collection, vous pouvez ajouter une méthode d’extension appelée Add acceptant les paramètres requis par l’initialiseur de collection. C'est généralement la démarche à suivre lorsque vous utilisez des initialiseurs de collection pour les collections génériques.

Exemple

L’exemple suivant explique de quelle manière ajouter une méthode d’extension au type générique List<T> afin qu’un initialiseur de collection puisse être utilisé pour ajouter des objets de type Employee. La méthode d’extension vous permet d’utiliser la syntaxe d’initialiseur de collection raccourcie.

Public Class Employee
    Public Property Id() As Integer
    Public Property Name() As String
End Class
Imports System.Runtime.CompilerServices

Module Module1

    <Extension()>
    Sub Add(ByVal list As List(Of Employee), ByVal id As Integer,
                                             ByVal name As String)
        list.Add(New Employee With {.Id = id, .Name = name})
    End Sub

End Module
Sub Main()
    Dim employees = New List(Of Employee) From {{1, "Adams, Ellen"},
                                                {2, "Hamilton, James R."},
                                                {3, "Ihrig, Ryan"}}
End Sub

Voir aussi