'ParamArray' は、拡張メソッドの最初のパラメータには適用できません
更新 : 2007 年 11 月
エラー メッセージ
'ParamArray' は、拡張メソッドの最初のパラメータには適用できません。最初のパラメータでは、拡張する型を指定します。
拡張メソッドの最初のパラメータは、そのメソッドが拡張するデータ型を指定します。したがって、最初のパラメータは必須であり、省略できません。パラメータ配列は自動的に省略可能になるので、拡張メソッドの最初の引数としては有効ではありません。
メモ : |
---|
メソッドの実行時には、このメソッドを呼び出した拡張データ型のインスタンスが、メソッドの最初のパラメータの引数になります。たとえば、Public Sub Print (ByVal str As String) という拡張メソッドがある場合、greeting.Print() の greeting インスタンスが最初のパラメータ str の引数になります。 |
Error 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