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

"ParamArray" kann nicht auf den ersten Parameter einer Erweiterungsmethode angewendet werden. Der erste Parameter gibt den zu erweiternden Typ an.

Der erste Parameter einer Extensionmethode gibt den Datentyp an, der von der Methode erweitert wird. Daher ist der erste Parameter erforderlich und nicht optional. Ein Parameterarray ist automatisch optional, und daher ist es als erstes Argument einer Erweiterungsmethode unzulä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) in 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