方法: コレクション初期化子によって使用される拡張メソッドを作成して追加する (Visual Basic)
コレクション初期化子を使用してコレクションを作成すると、Add
メソッドのパラメーターがコレクション初期化子の値の型と一致するコレクション型の Add
メソッドが、Visual Basic コンパイラによって検索されます。 この Add
メソッドは、コレクションに、コレクション初期化子の値を設定するときに使用されます。
一致する Add
メソッドが存在せず、コレクションのコードを変更できない場合は、コレクション初期化子で必要なパラメーターを取る Add
と呼ばれる拡張メソッドを追加できます。 この操作は、通常、コレクション初期化子をジェネリック コレクションに使用するときに行う必要があります。
例
次の例では、コレクション初期化子を使用して Employee
型のオブジェクトを追加できるように、拡張メソッドをジェネリック List<T> 型に追加する方法を示します。 拡張メソッドを使用すると、短縮されたコレクション初期化子構文を使用できます。
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
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET