Partager via


L'inférence d'argument de type a échoué pour le paramètre de type '<NomParamètreDeType>' de '<SignatureDeProcédureGénérique>'

Mise à jour : novembre 2007

Message d'erreur

L'inférence d'argument de type a échoué pour le paramètre de type '<NomParamètreDeType>' de '<SignatureDeProcédureGénérique>'. L'argument de type n'a pas pu être déduit à partir de l'argument passé au paramètre '<NomParamètre>'.
Type argument inference failed for type parameter '<typeparametername>' of '<genericproceduresignature>'. Type argument could not be inferred from the argument passed to parameter '<parametername>'.

Une procédure générique est appelée sans fournir d'arguments de type, et le compilateur ne peut pas déduire le type à passer à l'un des paramètres.

En général, lorsque vous appelez une procédure générique, vous fournissez un argument de type pour chaque paramètre de type défini par la procédure générique. Si vous ne fournissez pas d'arguments de type, le compilateur essaie de déduire les types à passer aux paramètres de type. Si le contexte de l'appel fournit des informations de type de données incompatibles pour un paramètre de type, l'inférence de type échoue.

Le code suivant peut générer ce message d'erreur.

Public Sub doSomething(Of t)(ByVal arg1 As t(), ByVal arg2 As t)
End Sub
Call doSomething(6, 42)

Dans l'exemple précédent, le compilateur déduit le type Integer pour t en fonction de la valeur 42 passée à arg2. Toutefois, cette inférence requiert que arg1 soit de type Integer(), c'est-à-dire un tableau de Integer, et la valeur 6 passée à arg1 ne correspond pas à ce type.

ID d'erreur : BC32051

Pour corriger cette erreur

  • Fournissez des arguments de type à la procédure générique, afin que le compilateur n'ait pas besoin de les déduire.

  • Fournissez des arguments normaux dont les types correspondent à ceux des arguments de type.

Voir aussi

Concepts

Types génériques en Visual Basic

Procédures génériques dans Visual Basic

Référence

Liste de types