Partilhar via


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

Mensagem de erro

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

O primeiro parâmetro de uma método de extensão especifica o tipo de dado a partir do qual 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, não é válida como o primeiro argumento de um método de extensão.

Observação:

Quando o método for executado, a instância do tipo de dados estendidos que chama 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 de extensão Public Sub Print (ByVal str As String).

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 especifica este 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, que requer 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

Conceitos

Métodos de extensão (Visual Basic)

Matrizes de parâmetro

Parâmetros Opcionais