Como criar um método para adicionar extensão usado por um inicializador de coleção (Visual Basic)
Quando você usa um inicializador de coleta para criar uma coleção, o compilador Visual Basic procura um Add o método do tipo de coleção para os quais os parâmetros para o Add método correspondem aos tipos dos valores em um inicializador de coleção. Isso Add método é usado para preencher a coleção com os valores do inicializador de coleção.
Se nenhuma correspondência Add método existe e você não pode modificar o código para a coleção, você pode adicionar um método de extensão chamado Add que leva os parâmetros necessários para o inicializador de coleção. Normalmente, isso é o que você precisa fazer quando você usa os inicializadores de coleção para coleções genéricas.
Exemplo
O exemplo a seguir mostra como adicionar um método de extensão para a genérica List digite de forma que um inicializador de coleção pode ser usado para adicionar objetos do tipo Employee. O método de extensão permite que você use a sintaxe do inicializador de coleção abreviado.
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 também
Tarefas
Como criar uma coleção usada por um inicializador de coleção (Visual Basic)