Los tipos de datos de los parámetros de tipo del método de extensión '<methodname>' definidos en 'typename' no se pueden inferir de estos argumentos porque no se convierten en el mismo tipo

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

Se ha intentado usar la inferencia de tipo para determinar el tipo (o tipos) de datos del parámetro (o parámetros) de tipo al evaluar una llamada a un método de extensión genérico. El compilador no pudo encontrar un tipo de datos que cumpliera las restricciones de todos los argumentos. Por lo tanto, 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
Module Module3
    Sub Main()

        Dim c1 As New Class1

        '' Not valid. Integer and Date do not convert to the same type.
        'c1.targetMethod(19, #3/4/2007#)

    End Sub

    <System.Runtime.CompilerServices.Extension()> _
    Sub targetMethod(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: BC36661 y BC36658

Para corregir este error

  • Puede convertir uno o más argumentos de manera explícita a un tipo compatible, como se muestra en el código siguiente:

    c1.targetMethod(19, #3/4/2007#.ToOADate)
    
  • Es posible que pueda especificar un tipo de datos para el parámetro de tipo o los parámetros en los que convertir los argumentos, como se muestra en el código siguiente:

    c1.targetMethod(Of String)(19, #3/4/2007#)
    

Consulte también