Compartir a través de


Cómo: Crear un método agregar extensión usado por un inicializador de colección (Visual Basic)

Cuando se usa un inicializador de colección para crear una colección, el compilador de Visual Basic busca un Add método del tipo de colección para el que los parámetros del Add método coinciden con los tipos de los valores del inicializador de la colección. Este Add método se usa para rellenar la colección con los valores del inicializador de la colección.

Si no existe ningún método coincidente Add y no se puede modificar el código de la colección, puede agregar un método de extensión denominado Add que toma los parámetros necesarios para el inicializador de la colección. Esto suele ser lo que debe hacer al usar inicializadores de colección para colecciones genéricas.

Ejemplo

En el ejemplo siguiente se muestra cómo agregar un método de extensión al tipo genérico List<T> para que se pueda usar un inicializador de colección para agregar objetos de tipo Employee. El método de extensión permite usar la sintaxis de inicializador de colección abreviada.

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

Consulte también