Porady: tworzenie i dodawanie metody rozszerzania wykorzystywanej przez inicjator kolekcji (Visual Basic)
Podczas tworzenia kolekcji za pomocą inicjatora kolekcji kompilator języka Visual Basic wyszukuje metodę Add
typu kolekcji, dla której parametry metody Add
są zgodne z typami wartości w inicjatorze kolekcji. Ta Add
metoda służy do wypełniania kolekcji wartościami z inicjatora kolekcji.
Jeśli nie istnieje żadna zgodna Add
metoda i nie można zmodyfikować kodu dla kolekcji, możesz dodać metodę rozszerzenia o nazwie Add
, która przyjmuje parametry wymagane przez inicjator kolekcji. Zazwyczaj jest to, co należy zrobić, gdy używasz inicjatorów kolekcji do kolekcji ogólnych.
Przykład
W poniższym przykładzie pokazano, jak dodać metodę rozszerzenia do typu ogólnego List<T> , aby inicjator kolekcji mógł służyć do dodawania obiektów typu Employee
. Metoda rozszerzenia umożliwia używanie skróconej składni inicjatora kolekcji.
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