方法: コレクション初期化子で使用される拡張メソッドを作成または追加する (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)