Gewusst wie: Erstellen einer Add-Erweiterungsmethode für einen Auflistungsinitialisierer (Visual Basic)
Wenn Sie einen Sammlungsinitialisierer zum Erstellen einer Sammlung verwenden, sucht der Visual Basic-Compiler nach einer Add
-Methode des Sammlungstyps, für die die Parameter für die Add
-Methode den Typen der Werte im Sammlungsinitialisierer entsprechen. Diese Add
-Methode wird verwendet, um die Sammlung mit den Werten aus dem Sammlungsinitialisierer aufzufüllen.
Wenn keine übereinstimmende Add
-Methode vorhanden ist und Sie den Code für die Sammlung nicht ändern können, können Sie eine Erweiterungsmethode namens Add
hinzufügen, die die vom Sammlungsinitialisierer erforderlichen Parameter annimmt. Dies ist in der Regel erforderlich, wenn Sie Sammlungsinitialisierer für generische Sammlungen verwenden.
Beispiel
Das folgende Beispiel zeigt, wie dem generischen List<T>-Typ eine Erweiterungsmethode hinzugefügt wird, sodass ein Sammlungsinitialisierer zum Hinzufügen von Objekten vom Typ Employee
verwendet werden kann. Mit der Erweiterungsmethode können Sie die verkürzte Sammlungsinitialisierersyntax 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