使用集合初始值设定项创建集合时,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