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

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile applicare 'Optional' al primo parametro di un metodo di estensione. Il primo parametro specifica quali tipi sono da estendere.
'Optional' 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. Quando il metodo viene eseguito, il primo parametro viene associato all'istanza del tipo di dati che richiama il metodo. Pertanto, il primo parametro è necessario e non può essere facoltativo.

La restrizione si applica solo al primo parametro. Gli altri parametri possono essere facoltativi o meno, in base alle stesse regole di qualsiasi altro metodo. Per ulteriori informazioni, vedere Elenco parametri.

ID errore: BC36553

Per correggere l'errore

  • Se si desidera che il primo parametro corrente specifichi il tipo di dati da estendere, rimuovere la parola chiave Optional.

  • Se il primo parametro corrente è un parametro standard al metodo e non si desidera che rappresenti il tipo di dati da estendere, aggiungere un nuovo primo parametro.

Esempio

Il primo parametro nell'esempio seguente è l'unica indicazione che il metodo Print estende il tipo di dati String. Pertanto, non può essere facoltativo.

<Extension()>
Public Sub Print (ByVal str As String)
    Console.WriteLine(str)
End Sub

Quando il metodo di estensione viene chiamato nel modo seguente, il parametro str nel metodo viene associato a greeting, l'istanza di String che chiama Print. Il compilatore utilizza greeting come argomento per il metodo di estensione Print.

    Dim greeting As String = "Hello"
    greeting.Print()

Vedere anche

Attività

Procedura: definire parametri facoltativi per una routine

Concetti

Metodi di estensione (Visual Basic)

Parametri facoltativi