如何:创建集合初始值设定项所使用的 Add 扩展方法 (Visual Basic)

使用集合初始值设定项创建集合时,Visual Basic 编译器会搜索该集合类型的 Add 方法,所搜索的 Add 方法的参数要与用于该集合的集合初始值设定项中的值类型相匹配。 此 Add 方法用于以集合初始值设定项中的值填充集合。

如果没有匹配的 Add 方法并且无法修改集合的代码,则可以添加一个名为 Add 的扩展方法,该方法接受集合初始值设定项所需的参数。 在对泛型集合使用集合初始值设定项时,通常需要这样操作。

示例

下面的示例演示如何将扩展方法添加到泛型类型 List,以便可以使用集合初始值设定项添加 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)