Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
При использовании инициализатора коллекции для создания коллекции компилятор Visual Basic ищет Add метод типа коллекции, для Add которого параметры метода соответствуют типам значений в инициализаторе коллекции. Этот Add метод используется для заполнения коллекции значениями из инициализатора коллекции.
Если метод сопоставления Add не существует и вы не можете изменить код коллекции, можно добавить метод Add расширения, который принимает параметры, необходимые инициализатору коллекции. Обычно это необходимо сделать при использовании инициализаторов коллекций для универсальных коллекций.
Пример
В следующем примере показано, как добавить метод расширения в универсальный List<T> тип, чтобы инициализатор коллекции можно было использовать для добавления объектов типа Employee. Метод расширения позволяет использовать сокращенный синтаксис инициализатора коллекции.
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