La méthode d'extension '<NomMéthode>' définie dans '<NomType>' n'a pas la même signature que le délégué '<NomDélégué>'

Mise à jour : novembre 2007

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

Il n'y a pas de correspondance entre les signatures de la méthode d'extension et le délégué que vous tentez d'utiliser. L'instruction Delegate définit les types de paramètres et les types de retour d'une classe déléguée. Les procédures présentant des paramètres, types et types de retour assortis peuvent être utilisées pour créer une instance de ce type délégué. Cette erreur est signalée dans l'exemple suivant parce que la signature de la méthode d'extension Example n'est pas compatible avec la signature de délégué Del.

' 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

ID d'erreur : BC36580

Pour corriger cette erreur

  • Vérifiez que le délégué et la méthode d'extension ont le même nombre de paramètres.

  • Vérifiez que l'ordre des paramètres est le même dans le délégué et la méthode d'extension.

  • Comparez le type de données de chaque paramètre de délégué au type de données du paramètre correspondant de la méthode d'extension afin de vous assurer qu'ils sont compatibles.

Voir aussi

Concepts

Méthodes d'extension (Visual Basic)

Conversion simplifiée des délégués

Référence

Delegate, instruction