Inferência de argumento de tipo falhou para o parâmetro de tipo '<typeparametername>' do '<genericproceduresignature>'
Mensagem de erro
Inferência de argumento falhou para o parâmetro de tipo '<typeparametername>' de '<genericproceduresignature>'.Argumento de tipo não pode ser deduzido do argumento passado ao parâmetro '<parametername>'.
Um procedimento genérico é chamado sem fornecer quaisquer argumentos de tipo, e o compilador não pode inferir o tipo para passar para um dos parâmetros.
Normalmente, quando você invoca um procedimento genérico, você fornece um argumento de tipo para cada parâmetro de tipo que o procedimento genérico define.Se você não fornece nenhum argumento de tipo, o compilador procura inferir os tipos a serem passados para os parâmetros de tipo.Se o contexto da chamada fornece informações de tipo de dados conflitantes para o parâmetro de tipo, então a inferência de tipos fracassa.
O código a seguir pode gerar este tipo de erro.
Public Sub doSomething(Of t)(ByVal arg1 As t(), ByVal arg2 As t)
End Sub
Call doSomething(6, 42)
No exemplo anterior, o compilador inferirá tipo Integer para t com base no valor de 42 passado para arg2.No entanto, essa inferência exigiria que arg1 fosse do tipo Integer(), ou seja, uma matriz de Integer, e o valor 6 passado para arg1 não corresponde a esse tipo.
ID de erro: BC32051
Para corrigir este erro
Forneça os argumentos de tipo ao procedimento genérico, de modo que o compilador não precise inferi-los.
Fornecer argumentos normais com tipos que correspondam aos argumentos de tipo.
Consulte também
Conceitos
Tipos genéricos no Visual Basic
Procedimentos Genéricos em Visual Basic