Die Signatur der in '<Typname>' definierten Erweiterungsmethode '<Methodenname>' stimmt nicht mit der des Delegaten '<Delegatname>' überein

Aktualisiert: November 2007

Extension method '<methodName>' defined in '<typeName>' does not have the same signature as delegate '<delegateName>'

Es besteht eine Diskrepanz zwischen den Signaturen der Erweiterungsmethode und dem verwendeten Delegaten. Die Delegate-Anweisung definiert die Parametertypen sowie die Rückgabetypen einer Delegatklasse. Eine beliebige Prozedur mit identischen Parametern, Typen und Rückgabetypen kann zur Erstellung einer Instanz dieses Delegattyps verwendet werden. Im folgenden Beispiel wird dieser Fehler gemeldet, da die Signatur der Erweiterungsmethode Example nicht mit der des Delegaten Del kompatibel ist.

' Definition of the delegate, with two parameters.
Delegate Sub Del(ByVal m As Integer, ByVal s As String)
' Definition of the extension method, with one parameter.
<Extension()> _
Sub Example(ByVal s As String)
    ' Body of the Sub.
End Sub
'' This assignment causes the error.
' Dim exampleDel As Del = AddressOf Example

Fehler-ID: BC36580

So beheben Sie diesen Fehler

  • Stellen Sie sicher, dass der Delegat und die Erweiterungsmethode die gleiche Anzahl von Parametern haben.

  • Stellen Sie sicher, dass Delegat und Erweiterungsmethode die gleiche Parameterreihenfolge aufweisen.

  • Vergleichen Sie den Datentyp jedes Delegatparameters mit dem Datentyp des entsprechenden Parameters der Erweiterungsmethode, um sicherzustellen, das sie kompatibel sind.

Siehe auch

Konzepte

Erweiterungsmethoden (Visual Basic)

Gelockerte Delegatenkonvertierung

Referenz

Delegate-Anweisung