Delen via


Procedure: Een methode voor het toevoegen van extensies maken die wordt gebruikt door een initialisatiefunctie voor verzamelingen (Visual Basic)

Wanneer u een verzameling initializer gebruikt om een verzameling te maken, zoekt de Visual Basic-compiler naar een Add methode van het verzamelingstype waarvoor de parameters voor de Add methode overeenkomen met de typen van de waarden in de initialisatiefunctie van de verzameling. Deze Add methode wordt gebruikt om de verzameling te vullen met de waarden van de initialisatiefunctie van de verzameling.

Als er geen overeenkomende Add methode bestaat en u de code voor de verzameling niet kunt wijzigen, kunt u een extensiemethode Add toevoegen die de parameters gebruikt die vereist zijn voor de initialisatiefunctie van de verzameling. Dit is doorgaans wat u moet doen wanneer u initializers voor verzamelingen gebruikt voor algemene verzamelingen.

Opmerking

In het volgende voorbeeld ziet u hoe u een extensiemethode toevoegt aan het algemene List<T> type, zodat een initialisatiefunctie voor verzamelingen kan worden gebruikt om objecten van het type Employeetoe te voegen. Met de extensiemethode kunt u de verkorte initialisatiesyntaxis van de verzameling gebruiken.

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

Zie ook