La méthode d'extension '<NomMéthode>' a des contraintes de type qui ne peuvent jamais être satisfaites

Mise à jour : novembre 2007

Extension method '<methodname>' has type constraints that can never be satisfied

Les paramètres de type de cette méthode interagissent de sorte qu'ils ne sont jamais satisfaits. La méthode d'extension suivante est un exemple.

'' Not valid.
'<Extension()> _
'Sub extensionExample(Of T As U, U)(ByVal para1 As T, ByVal para2 As U)
'End Sub

Étant donné que la méthode est une méthode d'extension, le compilateur doit pouvoir déterminer le ou les types de données étendus par la méthode, à partir du premier paramètre uniquement dans la déclaration de méthode, para1, et de l'argument envoyé pour ce paramètre. Lorsque le premier paramètre fait référence aux paramètres de type générique, para1 as T, les contraintes de ces paramètres limitent le jeu de types auxquels la méthode s'applique.

L'applicabilité d'une méthode d'extension est déterminée à partir de l'argument fourni pour le premier paramètre, arg1 dans le code suivant.

'' Not valid.

'arg1.extensionExample(arg2)

Vous devez pouvoir vérifier les contraintes dans tous les paramètres de type générique référencés par le premier paramètre, para1, en examinant uniquement le premier argument arg1. Dans extensionExample, le jeu de types étendus ne peut pas être déterminé à partir du premier paramètre uniquement. Le paramètre de type T est contraint par le paramètre de type U, qui n'est pas référencé par para1 et qui ne peut pas être déduit de arg1. Par conséquent, l'applicabilité de la méthode à n'importe quel type possible ne peut pas être vérifiée et la méthode ne peut jamais être appelée.

ID d'erreur : BC36561

Pour corriger cette erreur

  • Modifiez la déclaration de type pour supprimer l'interdépendance entre les types.

Voir aussi

Concepts

Méthodes d'extension (Visual Basic)

Types génériques en Visual Basic