Tipos de dados dos parâmetros de tipo no método de extensão '<methodname>' definidos em '<typename>' não podem ser inferidos destes argumentos

Tipos de dados dos parâmetros de tipo no método de extensão '<methodname>' definidos em '<typename>' não podem ser inferidos destes argumentos. Especificar os tipos de dados explicitamente pode corrigir esse erro.

Foi feita uma tentativa de usar a inferência de tipos para determinar o tipo (ou tipos) de dados do parâmetro (ou parâmetros) de tipo ao avaliar uma chamada para um método de extensão genérico. No entanto, o compilador não consegue encontrar um tipo de dados para os parâmetros de tipo neste método e relata o erro.

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()  
  
        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

  • 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