Partilhar via


Método de extensão '<methodname>' definido em '<typename>' não tem a mesma assinatura do delegado '<delegatename>'

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

  • comparar o tipo de dados de cada parâmetro delegado para o tipo de dados do parâmetro de método de extensão correspondente para certificar-se de que eles estejam compatível.

Consulte também

Conceitos

Métodos de extensão (Visual Basic)

Conversão de delegado reduzida

Referência

Instrução Delegate