Partilhar via


Tipos de dados do tipo de parâmetros no método de extensão '<methodname>' definido em '<typename>' não podem ser deduzidos a partir desses argumentos

Mensagem de erro

Tipos de dados do tipo de parâmetros no método de extensão '<methodname>' definido em '<typename>' não podem ser deduzidos a partir desses argumentos.Especificando os dados tipos explicitamente podem corrigir esse erro.

Foi feita uma tentativa de usar inferência de tipos de tipos para determinar o tipo de dados (ou tipos) de parâmetro de tipo (ou parâmetros) ao avaliar uma telefonar para um método de extensão genérica.No entanto, o compilador não é capaz de encontrar um tipo de dados para os parâmetros de tipo nesse método, e informa o erro.

Observação:

Quando especificar argumentos não é uma opção (por exemplo, para operadores de consulta em expressões de consulta), a mensagem de erro appe ARS sem a segunda sentença .

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ê poderá especificar um tipo de dados para o parâmetro de tipo ou parâmetros em vez de depender de inferência de tipos de tipos.

Consulte também

Conceitos

Conversão de delegado reduzida

Métodos de extensão (Visual Basic)

Procedimentos Genéricos em Visual Basic

Outros recursos

Conversões de Tipo no Visual Basic