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

Zobacz też