O método de extensão '<methodName>' definido em '<typeName>' não tem a mesma assinatura que o delegado '<delegateName>'

Há uma incompatibilidade entre as assinaturas do método de extensão e o delegado que você está tentando usar. A Delegate instrução define os tipos de parâmetros e tipos de retorno de uma classe delegada. Qualquer procedimento com parâmetros, tipos e tipos de retorno correspondentes pode ser usado para criar uma instância desse tipo delegado. Este erro é relatado no exemplo a seguir porque a assinatura do método Example de extensão não é compatível com a assinatura do delegado 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 de erro: BC36580

Para corrigir este erro

  • Verifique se o delegado e o método de extensão têm o mesmo número de parâmetros.

  • Verifique se a ordem dos parâmetros é a mesma no método de delegado e extensão.

  • Compare o tipo de dados de cada parâmetro de delegado com o tipo de dados do parâmetro de método de extensão correspondente para garantir que eles sejam compatíveis.

Consulte também