"ParamArray" kann nicht auf den ersten Parameter einer Erweiterungsmethode angewendet werden

Aktualisiert: November 2007

Fehlermeldung

"ParamArray" kann nicht auf den ersten Parameter einer Erweiterungsmethode angewendet werden. Der erste Parameter gibt den zu erweiternden Typ an.
'ParamArray' cannot be applied to the first parameter of an extension method. The first parameter specifies which type to extend.

Der erste Parameter einer Erweiterungsmethode gibt den Datentyp an, der von der Methode erweitert wird. Daher ist der erste Parameter erforderlich und nicht optional. Da ein Parameterarray automatisch optional ist, ist es als erstes Argument einer Erweiterungsmethode nicht zulässig.

Hinweis:

Wird die Methode ausgeführt, wird die Instanz des erweiterten Datentyps, der die Methode aufruft, zum Argument für den ersten Parameter der Methode. Beispielsweise ist die Instanz greeting in greeting.Print() das Argument für den ersten Parameter (str) der Erweiterungsmethode Public Sub Print (ByVal str As String).

Fehler-ID: BC36554

So beheben Sie diesen Fehler

  • Wenn das Parameterarray den zu erweiternden Datentyp nicht angibt, fügen Sie einen neuen ersten Parameter hinzu, der den Typ angibt.

    <Extension()>
    Public Sub AddTo(ByRef str As String, ByVal ParamArray addOns() As String)
    ' Concatenate the strings in addOns to str.
    End Sub
    
  • Wenn das Parameterarray den zu erweiternden Datentyp angibt, können Sie es in ein reguläres Array ändern, das statt eines Parameterarrays ein Argument erfordert. Reguläre Arrays können erweitert werden.

    <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
    

Siehe auch

Konzepte

Erweiterungsmethoden (Visual Basic)

Parameterarrays

Optionale Parameter