'ParamArray' no se puede aplicar al primer parámetro de un método de extensión

'ParamArray' no se puede aplicar al primer parámetro de un método de extensión. El primer parámetro especifica el tipo que se debe extender.

El primer parámetro de un método de extensión especifica el tipo de datos que extiende el método. Por lo tanto, el primer parámetro es necesario y no puede ser opcional. Dado que una matriz de parámetros es opcional de manera predeterminada, no es válida como primer argumento de un método de extensión.

Nota

Cuando se ejecuta el método, la instancia del tipo de datos extendidos que invoca el método se convierte en el argumento del primer parámetro del método. Por ejemplo, la instancia de greeting en greeting.Print() es el argumento para el primer parámetro, str, en el método de extensión Public Sub Print (ByVal str As String).

Identificador de error: BC36554

Para corregir este error

  • Si la matriz de parámetros no especifica el tipo de datos que desea extender, agregue un nuevo primer parámetro que especifique este tipo.

    <Extension()>
    Public Sub AddTo(ByRef str As String, ByVal ParamArray addOns() As String)
    ' Concatenate the strings in addOns to str.
    End Sub
    
  • Si la matriz de parámetros especifica el tipo de datos que desea extender, considere la posibilidad de cambiar a una matriz normal, que requiere un argumento en lugar de una matriz de parámetros. Las matrices normales se pueden extender.

    <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
    

Consulte también