Impossibile applicare 'ParamArray' al primo parametro di un metodo di estensione

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile applicare 'ParamArray' al primo parametro di un metodo di estensione. Il primo parametro specifica quali tipi sono da estendere.
'ParamArray' cannot be applied to the first parameter of an extension method. The first parameter specifies which type to extend.

Il primo parametro di un metodo di estensione specifica il tipo di dati che il metodo estende. Pertanto, il primo parametro è necessario e non può essere facoltativo. Poiché una matrice di parametri è automaticamente facoltativa, non è valida come primo argomento di un metodo di estensione.

Nota:

Quando il metodo viene eseguito, l'istanza del tipo di dati estesi che invoca il metodo diventa l'argomento per il primo parametro del metodo. Ad esempio, l'istanza greeting in greeting.Print() è l'argomento per il primo parametro, str, nel metodo di estensione Public Sub Print (ByVal str As String).

ID errore: BC36554

Per correggere l'errore

  • Se la matrice di parametri non specifica il tipo di dati che si desidera estendere, aggiungere un nuovo primo parametro che specifichi tale tipo.

    <Extension()>
    Public Sub AddTo(ByRef str As String, ByVal ParamArray addOns() As String)
    ' Concatenate the strings in addOns to str.
    End Sub
    
  • Se la matrice di parametri specifica il tipo di dati che si vuole estendere, modificarla in una matrice normale, che richiede un argomento, invece che una matrice di parametri. Le matrici normali possono essere estese.

    <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
    

Vedere anche

Concetti

Metodi di estensione (Visual Basic)

Matrici di parametri

Parametri facoltativi