'ParamArray' を拡張メソッドの最初のパラメーターに適用できません。

'ParamArray' を拡張メソッドの最初のパラメーターに適用できません。 最初のパラメーターは、拡張する型を指定します。

拡張メソッドの最初のパラメーターでは、そのメソッドが拡張するデータ型を指定します。 そのため、最初のパラメーターは必須であり、省略可能にすることはできません。 パラメーター配列は、自動的に省略可能であるため、拡張メソッドの最初の引数として有効ではありません。

Note

メソッドが実行されると、そのメソッドを呼び出す拡張データ型のインスタンスが、メソッドの最初のパラメーターの引数になります。 たとえば、 greeting のインスタンス greeting.Print() は、拡張メソッド strの最初のパラメーター Public Sub Print (ByVal str As String)の引数です。

エラー ID: BC36554

このエラーを解決するには

  • パラメーター配列で拡張するデータ型を指定しない場合は、その型を指定する新しい最初のパラメーターを追加します。

    <Extension()>
    Public Sub AddTo(ByRef str As String, ByVal ParamArray addOns() As String)
    ' Concatenate the strings in addOns to str.
    End Sub
    
  • パラメーター配列で拡張するデータ型を指定する場合は、パラメーター配列の代わりに、引数を必要とする通常の配列に変更することを検討してください。 通常の配列は、拡張できます。

    <Extension()>
    Public Function Sum(ByVal ints() As Integer) As Integer
        Dim total As Integer = 0
        For Each i As Integer In ints
            total = total + i
        Next i
        Return total
    End Function
    

関連項目