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