Partager via


L'opérande 'TryCast' doit être un paramètre de type contraint par classe, mais '<NomParamètreDeType>' n'a pas de contrainte de classe

Mise à jour : novembre 2007

'TryCast' operands must be class-constrained type parameters, but '<typeparametername>' has no class constraint

L'opérateur TryCast est utilisé avec un opérande de paramètre de type qui n'est pas forcément un type référence.

TryCast utilise uniquement des types référence, tels que les classes ou les interfaces. Lorsque vous passez un paramètre de type en tant qu'argument à TryCast, vous devez contraindre ce paramètre de type à être un type référence. Pour ce faire, vous devez inclure un ou plusieurs des éléments suivants dans la liste de contraintes du paramètre de type :

  • un ou plusieurs noms d'interfaces (l'argument de type doit tous les implémenter) ;

  • au plus un nom de classe (l'argument de type doit en hériter) ;

  • la contrainte New (Visual Basic) (l'argument de type devant exposer un constructeur sans paramètre auquel le code de création peut accéder, celui-ci doit être une classe) ;

  • la contrainte Class (Visual Basic) (l'argument de type doit être un type référence).

ID d'erreur : BC30793

Pour corriger cette erreur

  • Si vous devez passer ce paramètre de type à TryCast, imposez-lui une contrainte avec une ou plusieurs des contraintes de la liste précédente.

  • Si le paramètre de type ne peut pas accepter uniquement un type référence, vous ne pouvez pas l'utiliser avec TryCast. Vous pouvez utiliser à la place la CType, fonction.

Voir aussi

Concepts

Types génériques en Visual Basic

Types valeur et types référence

Conversions étendues et restrictives

Conversions implicites et explicites

Référence

Liste de types