如何:创建集合初始值设定项所使用的 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

另请参阅