(s) tipo de dados não do tipo de parâmetros no método de extensão '<methodname>' definidos em 'typename' pode ser deduzidos a partir desses argumentos porque eles não são convertidos para o mesmo tipo
Mensagem de erro
(s) tipo de dados não do tipo de parâmetros no método de extensão '<methodname>' definidos em 'typename' pode ser deduzidos a partir desses argumentos porque eles não são convertidos para o mesmo tipo.Especificando os dados tipos explicitamente podem corrigir esse erro.
Foi feita uma tentativa de usar inferência de tipos de tipos para determinar o tipo de dados (ou tipos) de parâmetro de tipo (ou parâmetros) ao avaliar uma telefonar para um método de extensão genérica.O compilador não foi possível encontrar um tipo de dados que satisfaça as restrições de todos os argumentos.Portanto, ele relatado que esse erro.
![]() |
---|
Quando especificar 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 sentença. |
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
Você poderá converter um ou mais argumentos explicitamente em um tipo compatível, sistema autônomo mostra o código a seguir:
c1.targetMethod(19, #3/4/2007#.ToOADate)
Você poderá especificar um tipo de dados para o parâmetro de tipo ou parâmetros para a qual converter sistema autônomo argumentos, sistema autônomo mostrado no código a seguir:
c1.targetMethod(Of String)(19, #3/4/2007#)
Consulte também
Conceitos
Métodos de extensão (Visual Basic)
Conversão de delegado reduzida
Procedimentos Genéricos em Visual Basic
Conversões explícita e implícita