Condividi tramite


Procedura: creare un metodo di estensione Add utilizzato da un inizializzatore di raccolta (Visual Basic)

Quando si utilizza un inizializzatore di raccolta per creare una raccolta, il compilatore Visual Basic cerca un metodo Add del tipo di raccolta per il quale i parametri per il metodo Add corrispondono ai tipi dei valori nell'inizializzatore di raccolta.Questo metodo Add viene utilizzato per popolare la raccolta con i valori dell'inizializzatore di raccolta.

Se non esiste alcun metodo Add corrispondente e non è possibile modificare il codice per la raccolta, è possibile aggiungere un metodo di estensione chiamato Add che accetta i parametri richiesti dall'inizializzatore di raccolta.Questa operazione è in genere necessaria quando si utilizzano gli inizializzatori di raccolta per le raccolte generiche.

Esempio

Nell'esempio seguente viene illustrato come aggiungere un metodo di estensione al tipo generico List<T> in modo che sia possibile utilizzare un inizializzatore di raccolta per aggiungere oggetti di tipo Employee.Il metodo di estensione consente di utilizzare la sintassi abbreviata dell'inizializzatore di raccolta.

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

Vedere anche

Attività

Procedura: creare una raccolta utilizzata da un inizializzatore di raccolta (Visual Basic)

Concetti

Inizializzatori di raccolte (Visual Basic)