Los tipos de datos de los parámetros de tipo del método de extensión '<methodname>' definido en '<typename>' no se pueden inferir de estos argumentos porque hay más de un tipo posible

Los tipos de datos de los parámetros de tipo del método de extensión '<methodname>' definido en '<typename>' no se pueden inferir de estos argumentos porque hay más de un tipo posible. Especificar los tipos de datos explícitamente puede corregir este error.

Se intentó usar la inferencia de tipos para determinar el tipo o los tipos del parámetro o los parámetros de tipo en una llamada a un método de extensión genérico. El compilador encuentra más de un tipo de datos para uno o varios de los parámetros de tipo e informa de este error.

Nota

Al especificar argumentos no es una opción (por ejemplo, para operadores de consulta en expresiones de consulta), el mensaje de error aparece sin la segunda oración.

El código siguiente muestra el error.

Option Strict Off
Imports System.Runtime.CompilerServices
Module Module1
    Sub Main()

        Dim caller As New Class1
        '' Not valid.
        'caller.targetExtension(1, "2")

    End Sub

    <Extension()> _
    Sub targetExtension(Of T)(ByVal p0 As Class1, ByVal p1 As T, ByVal p2 As T)
    End Sub

    Class Class1
    End Class

End Module

Identificador de error: BC36655 (dentro de las consultas LINQ) y BC36652 (fuera de las consultas)

Para corregir este error

Si el error aparece fuera de una consulta, intente especificar el tipo de datos del parámetro o los parámetros de tipo de forma explícita:

caller.targetExtension(Of Integer)(1, "2")
caller.targetExtension(Of String)(1, "2")

Consulte también