“ParamArray”不能应用于扩展方法的第一个参数

更新:2007 年 11 月

错误消息

“ParamArray”不能应用于扩展方法的第一个参数。第一个参数指定要扩展哪种类型。

扩展方法的第一个参数指定方法将扩展的数据类型。因此,第一个参数是必需的,而不能是可选的。因为形参数组是自动可选的,所以不能作为扩展方法的第一个实参。

说明:

执行方法时,调用方法的扩展数据类型的实例成为方法的第一个形参的实参。例如,greeting.Print() 中的实例 greeting 是扩展方法 Public Sub Print (ByVal str As String) 中第一个形参 str 的实参。

**错误 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
    

请参见

概念

扩展方法 (Visual Basic)

参数数组

可选参数