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

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. 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. No entanto, o compilador não é capaz de encontrar um tipo de dados para os parâmetros de tipo neste método, e ele relata o 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.

Module Module1  
  
    Sub Main()  
  
        Dim classInstance As ClassExample  
  
        '' Not valid.  
        'classInstance.GenericExtensionMethod("Hello", "World")  
  
    End Sub  
  
    <System.Runtime.CompilerServices.Extension()> _  
    Sub GenericExtensionMethod(Of T)(ByVal classEx As ClassExample, _  
                                     ByVal x As String, ByVal y As _  
                                     InterfaceExample(Of T))  
    End Sub  
  
End Module  
  
Interface InterfaceExample(Of T)  
End Interface  
  
Class ClassExample  
End Class  

ID de erro: BC36649 e BC36646

Para corrigir este erro

  • Talvez seja possível especificar um tipo de dados para o(s) parâmetro(s) de tipo, em vez de confiar na inferência de tipo.

Consulte também