Partilhar via


O método '<methodname>' não tem uma assinatura compatível com delegado <'delegatename'>

Este erro corre quando uma conversão é exigida entre um método e um delegado que não é possível.A causa do erro pode ser conversão entre parâmetros ou, quando o método e delegado são funções, conversão entre valores de retorno.

O código a seguir ilustra conversões que falharam.O delegado é FunDel.

Delegate Function FunDel(ByVal i As Integer, ByVal d As Double) As Integer

Cada uma das seguintes funções diferem de FunDel num modo que causará este erro.

Function ExampleMethod1(ByVal m As Integer, ByVal aDate As Date) As Integer
End Function

Function ExampleMethod2(ByVal m As Integer, ByVal aDouble As Double) As Date
End Function

Cada uma das seguintes instruções de atribuição causa o erro.

Sub Main()
    ' The second parameters of FunDel and ExampleMethod1, Double and Date,
    ' are not compatible.
    'Dim d1 As FunDel = AddressOf ExampleMethod1

    ' The return types of FunDel and ExampleMethod2, Integer and Date,
    ' are not compatible.
    'Dim d2 As FunDel = AddressOf ExampleMethod2

End Sub

ID de erro: BC31143

Para corrigir este erro

  • Examine os parâmetros correspondentes e, se estiverem presentes, tipos de retorno para determinar qual emparelhar não é compatível.

Consulte também

Conceitos

Conversão de delegado reduzida

Delegados e o operador AddressOf