Поделиться через


Практическое руководство. Создание метода расширения Add, используемого инициализатором набора (Visual Basic)

При использовании инициализатора набора для создания коллекции компилятор 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

См. также

Задачи

Практическое руководство. Создание коллекции, используемой инициализатором набора (Visual Basic)

Основные понятия

Инициализаторы коллекций (Visual Basic)