コレクション初期化子を使用してコレクションを作成すると、Visual Basic コンパイラは、Add
メソッドのパラメーターがコレクション初期化子の値の型と一致するコレクション型のAdd
メソッドを検索します。 この 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