Ler em inglês

Partilhar via


Nenhum método acessível '<procedurename>' tem uma assinatura compatível com delegate '<delegatename>':<suberrorlist>

Uma instrução de atribuição atribui o endereço de um procedimento a uma variável delegada, mas o compilador não consegue encontrar uma versão do procedimento com uma assinatura correspondente.

Quando o código usa o endereço de um procedimento, o compilador tenta encontrar uma versão desse procedimento com uma lista de parâmetros que corresponde à do delegado. Se o procedimento é definido em várias versões sobrecarregadas, o compilador tenta encontrar uma única versão com uma assinatura correspondente. Para obter mais informações, consulte Resolução de sobrecarga.

Se o compilador não conseguir encontrar nenhuma versão do procedimento com uma assinatura correspondente, ele gerará esse erro. Isso pode acontecer, por exemplo, se o procedimento ou o delegado for genérico e um argumento de tipo for passado para ele que lhe dê uma assinatura que não corresponde à outra assinatura.

ID de erro: BC30950

Para corrigir este erro

  1. Redefina o procedimento ou o delegado para que eles tenham listas de parâmetros correspondentes.

    -or-

    Defina um novo delegado com uma lista de parâmetros correspondente à do procedimento ou defina um novo procedimento com uma lista de parâmetros correspondente à do delegado.

  2. Se o procedimento ou o delegado for genérico, passe um argumento de tipo que faça com que sua assinatura corresponda à outra assinatura.

Consulte também