Partilhar via


'ParamArray' não pode ser aplicado ao primeiro parâmetro de um método de extensão

'ParamArray' não pode ser aplicado ao primeiro parâmetro de um método de extensão. O primeiro parâmetro especifica qual tipo estender.

O primeiro parâmetro de um método de extensão especifica o tipo de dados que o método estende. Portanto, o primeiro parâmetro é necessário e não pode ser opcional. Como uma matriz de parâmetros é automaticamente opcional, ela não é válida como o primeiro argumento de um método de extensão.

Nota

Quando o método é executado, a instância do tipo de dados estendido que invoca o método torna-se o argumento para o primeiro parâmetro do método. Por exemplo, a instância greeting em greeting.Print() é o argumento para o primeiro parâmetro, str, no método Public Sub Print (ByVal str As String)de extensão .

ID de erro: BC36554

Para corrigir este erro

  • Se a matriz de parâmetros não especificar o tipo de dados que você deseja estender, adicione um novo primeiro parâmetro que especifique esse tipo.

    <Extension()>
    Public Sub AddTo(ByRef str As String, ByVal ParamArray addOns() As String)
    ' Concatenate the strings in addOns to str.
    End Sub
    
  • Se a matriz de parâmetros especificar o tipo de dados que você deseja estender, considere alterá-la para uma matriz regular, exigindo um argumento, em vez de uma matriz de parâmetros. Matrizes regulares podem ser estendidas.

    <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 também