Le paramètre de type '<NomParamètreDeType>' pour '<NomProcédureGénérique>' ne peut pas être inféré

Mise à jour : novembre 2007

Type parameter '<typeparametername>' for '<genericprocedurename>' cannot be inferred

Une procédure générique est appelée sans fournir une liste d'arguments de type, et l'inférence du type échoue pour l'un des arguments de type.

Lorsque vous appelez une procédure générique, vous fournissez normalement un argument de type pour chaque paramètre de type défini par la procédure. Toutefois, vous avez la possibilité d'omettre totalement la liste d'arguments de type. Si vous le faites, le compilateur essaie de déduire le type de chaque argument de type à partir du contexte de votre appel. Pour plus d'informations, consultez « Inférence du type » dans Procédures génériques dans Visual Basic.

Une incompatibilité de rang entre un paramètre de type et le type appelant peut expliquer l'échec de l'inférence du type. Le code suivant illustre ce comportement :

Public Sub displayLargest(Of t As IComparable)(ByVal arg() As t)
    ' Insert code to find and display the largest element of arg().
End Sub
Public Sub callGenericSub()
    Dim testValue As Integer
    findLargest(testValue)
    Dim testMatrix(,) As Integer
    findLargest(testMatrix)
End Sub

Dans le code précédent, les deux appels à findLargest produisent cette erreur, parce que le paramètre de type t fait appel à un tableau unidimensionnel, alors que les arguments de type que le compilateur déduit à partir des appels représentent un tableau scalaire (testValue) et en deux dimensions (testMatrix).

ID d'erreur : BC32050

Pour corriger cette erreur

  • Vérifiez que les types des arguments normaux se présentent de telle sorte que l'inférence du type soit cohérente par rapport aux paramètres de type déclarés pour la procédure générique.

    - ou -

  • Appelez la procédure générique avec une liste d'arguments de type complète pour que l'inférence du type ne soit pas nécessaire.

Voir aussi

Concepts

Types génériques en Visual Basic

Procédures génériques dans Visual Basic

Référence

Liste de types