Partager via


Impossible de déduire le ou les types de données du ou des paramètres de type dans la méthode d'extension '<NomMéthode>' définie dans 'NomType' à partir de ces arguments, car ils ne sont pas convertis vers le même type

Mise à jour : novembre 2007

Message d'erreur

Impossible de déduire le ou les types de données du ou des paramètres de type dans la méthode d'extension '<nomméthode>' définie dans 'nomtype' à partir de ces arguments, car ils ne sont pas convertis vers le même type. La spécification explicite du ou des types de données peut permettre de corriger cette erreur.
Data type(s) of the type parameter(s) in extension method '<methodname>' defined in 'typename' cannot be inferred from these arguments because they do not convert to the same type. Specifying the data type(s) explicitly might correct this error.

Tentative d'utilisation de l'inférence de type pour déterminer le ou les types de données du ou des paramètres de type lors de l'évaluation d'un appel à une méthode d'extension générique. Le compilateur n'a pas pu trouver le type de données qui répond aux contraintes de tous les arguments. Par conséquent, il a signalé cette erreur.

Remarque :

Lorsque la spécification d'arguments n'est pas une option (par exemple, pour les opérateurs de requête dans les expressions de requête), le message d'erreur apparaît sans la deuxième phrase.

Le code suivant illustre cette erreur.

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

ID d'erreur : BC36661 et BC36658

Pour corriger cette erreur

  • Vous pouvez convertir explicitement un ou plusieurs arguments en un type compatible, comme illustré dans le code suivant :

    c1.targetMethod(19, #3/4/2007#.ToOADate)
    
  • Vous pouvez spécifier un type de données pour le ou les paramètres de type vers lesquels les arguments sont convertis, comme illustré dans le code suivant :

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

Voir aussi

Concepts

Méthodes d'extension (Visual Basic)

Conversion simplifiée des délégués

Procédures génériques dans Visual Basic

Conversions implicites et explicites

Référence

Fonctions de conversion de types de données

Autres ressources

Conversions de type en Visual Basic