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 desses argumentos porque mais de um tipo é possível. 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 (ou tipos) do parâmetro de tipo (ou parâmetros) em uma chamada para um método de extensão genérico. O compilador encontra mais de um tipo de dados possível para um ou mais parâmetros de tipo e relata 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
Imports System.Runtime.CompilerServices
Module Module1
Sub Main()
Dim caller As New Class1
'' Not valid.
'caller.targetExtension(1, "2")
End Sub
<Extension()> _
Sub targetExtension(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: BC36655 (dentro de consultas LINQ) e BC36652 (consultas externas)
Para corrigir este erro
Se o erro aparecer fora de uma consulta, tente especificar o tipo de dados do parâmetro ou parâmetros de tipo explicitamente:
caller.targetExtension(Of Integer)(1, "2")
caller.targetExtension(Of String)(1, "2")