Freigeben über


So erstellen Sie eine Add-Erweiterungsmethode, die von einem Sammlungsinitialisierer verwendet wird (Visual Basic)

Wenn Sie einen Sammlungsinitialisierer zum Erstellen einer Auflistung verwenden, sucht der Visual Basic-Compiler nach einer Add Methode des Auflistungstyps, für die die Parameter für die Add Methode den Typen der Werte im Sammlungsinitialisierer entsprechen. Diese Add Methode wird verwendet, um die Auflistung mit den Werten aus dem Sammlungsinitialisierer aufzufüllen.

Wenn keine übereinstimmende Add Methode vorhanden ist und Sie den Code für die Auflistung nicht ändern können, können Sie eine Erweiterungsmethode Add hinzufügen, die die parameter verwendet, die vom Sammlungsinitialisierer benötigt werden. Dies ist in der Regel erforderlich, wenn Sie Sammlungsinitialisierer für generische Auflistungen verwenden.

Beispiel

Das folgende Beispiel zeigt, wie Sie dem generischen List<T> Typ eine Erweiterungsmethode hinzufügen, damit ein Sammlungsinitialisierer verwendet werden kann, um Objekte vom Typ Employeehinzuzufügen. Mit der Erweiterungsmethode können Sie die gekürzte Sammlungsinitialisierungssyntax verwenden.

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

Siehe auch