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