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