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