Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O(s) tipo(s) de dados do(s) parâmetro(s) de tipo no método de extensão '<methodname>' definido em 'typename' não podem ser inferidos a partir destes argumentos porque não convertem para o mesmo tipo. Especificar explicitamente o(s) tipo(s) de dados pode corrigir esse erro.
Foi feita uma tentativa de usar a inferência de tipo para determinar o tipo de dados (ou tipos) do parâmetro de tipo (ou parâmetros) ao avaliar uma chamada para um método de extensão genérico. O compilador não pôde encontrar um tipo de dados que atenda às restrições de todos os argumentos. Portanto, ele relatou esse erro.
Nota
Quando a especificação de argumentos não é uma opção (por exemplo, para operadores de consulta em expressões de consulta), a mensagem de erro aparece sem a segunda frase.
O código a seguir demonstra o erro.
Option Strict Off
Module Module3
Sub Main()
Dim c1 As New Class1
'' Not valid. Integer and Date do not convert to the same type.
'c1.targetMethod(19, #3/4/2007#)
End Sub
<System.Runtime.CompilerServices.Extension()> _
Sub targetMethod(Of T)(ByVal p0 As Class1, ByVal p1 As T, ByVal p2 As T)
End Sub
Class Class1
End Class
End Module
ID de erro: BC36661 e BC36658
Para corrigir este erro
Talvez seja possível converter um ou mais argumentos explicitamente em um tipo compatível, conforme mostrado no código a seguir:
c1.targetMethod(19, #3/4/2007#.ToOADate)Talvez seja possível especificar um tipo de dados para o parâmetro ou parâmetros de tipo para os quais os argumentos são convertidos, conforme mostrado no código a seguir:
c1.targetMethod(Of String)(19, #3/4/2007#)