Não é possível inferir os tipos de dados dos parâmetros de tipo no método '<methodname>' com base nesses argumentos porque eles não são convertidos no mesmo tipo

Não é possível inferir os tipos de dados dos parâmetros de tipo no método '<methodname>' com base nesses argumentos porque eles não são convertidos no mesmo tipo. Especificar os tipos de dados explicitamente pode corrigir esse erro.

Foi feita uma tentativa de usar a inferência de tipos para determinar o tipo (ou tipos) de dados do parâmetro (ou parâmetros) de tipo ao avaliar uma chamada para um método de extensão genérico. O compilador não conseguiu encontrar um tipo de dados que atenda às restrições de todos os argumentos. Portanto, ele relatou esse erro.

Observação

Quando não é possível especificar argumentos (por exemplo, para operadores de consulta em expressões de consulta), a mensagem de erro é exibida sem a segunda frase.

O código a seguir demonstra o erro.

Option Strict Off
Module Module1
    Sub Main()

        '' Not valid. Integer and Date do not convert to the same type.
        'targetMethod(19, #3/4/2007#)

    End Sub

    Sub targetMethod(Of T)(ByVal p1 As T, ByVal p2 As T)
    End Sub

End Module

ID do erro: BC36660 e BC36657

Para corrigir este erro

  • Talvez você consiga converter um ou mais argumentos explicitamente em um tipo compatível, conforme mostrado no seguinte código:

    targetMethod(19, #3/4/2007#.ToOADate)
    
  • Talvez você consiga especificar um tipo de dados para o parâmetro ou os parâmetros de tipo aos quais os argumentos são convertidos, conforme mostrado no seguinte código:

    targetMethod(Of String)(19, #3/4/2007#)
    

Confira também