BC36647 e BC36644: Não é possível inferir o(s) tipo(s) de dados do(s) parâmetro(s) de tipo a partir destes argumentos

Não é possível inferir o(s) tipo(s) de dados do(s) parâmetro(s) de tipo a partir destes argumentos. Especificar os tipos de dados explicitamente pode corrigir esse erro.

Esse erro ocorre quando há falha na resolução de sobrecarga. Ele ocorre como mensagem subordinada que indica por que um candidato de sobrecarga específico foi eliminado. A mensagem de erro explica que o compilador não pode usar a inferência de tipo para encontrar tipos de dados para os parâmetros de tipo.

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.

Module Module1

    Sub Main()

        '' Not Valid.
        'OverloadedGenericMethod("Hello", "World")

    End Sub

    Sub OverloadedGenericMethod(Of T)(ByVal x As String,
                                      ByVal y As InterfaceExample(Of T))
    End Sub

    Sub OverloadedGenericMethod(Of T, R)(ByVal x As T,
                                         ByVal y As InterfaceExample(Of R))
    End Sub

End Module

Interface InterfaceExample(Of T)
End Interface

ID de erro: BC36647 e BC36644

Para corrigir este erro

Você pode conseguir especificar um tipo de dados para o parâmetro (ou parâmetros) de tipo em vez de depender da inferência de tipo.

Confira também