Partager via


Le type de contrainte de paramètre générique <NomType> n'est pas conforme CLS

Mise à jour : novembre 2007

Generic parameter constraint type <typename> is not CLS-compliant

Un type générique est marqué comme <CLSCompliant(True)>, mais une contrainte sur l'un de ses paramètres de type spécifie un type qui est marqué comme <CLSCompliant(False)>, qui n'est pas marqué ou qui n'est pas qualifié car s'agissant d'un type non conforme.

Pour qu'un type soit conforme à la Spécification CLS (Common Language Specification) (CLS), il doit utiliser uniquement les types conformes CLS. Cette règle s'applique également aux contraintes des paramètres de type d'un type générique.

Les types de données Visual Basic suivants ne sont pas conformes CLS :

Lorsque vous appliquez l'attribut CLSCompliantAttribute à un élément de programmation, vous affectez au paramètre isCompliant de l'attribut la valeur True ou False pour indiquer la conformité ou la non-conformité. Il n'existe pas de valeur par défaut pour ce paramètre et vous devez fournir une valeur.

Si vous n'appliquez pas CLSCompliantAttribute à un élément, il est considéré comme étant non conforme.

Par défaut, ce message est un avertissement. Pour plus d'informations sur le masquage des avertissements ou le traitement des avertissements en tant qu'erreurs, consultez Configuration d'avertissements en Visual Basic.

ID d'erreur : BC40040

Pour corriger cette erreur

  • Si le type générique doit prendre un paramètre de type contraint par ce type particulier, supprimez CLSCompliantAttribute. Le type ne peut pas être conforme CLS.

  • Si le type générique doit être conforme CLS, remplacez le type de cette contrainte par le type conforme CLS le plus proche. Par exemple, vous pouvez utiliser Integer au lieu de UInteger si vous n'avez pas besoin de la plage de valeurs située au-dessus de 2 147 483 647. Si vous avez besoin de la plage étendue, vous pouvez remplacer UInteger par Long.

Voir aussi

Concepts

Types génériques en Visual Basic

Écriture d'un code conforme CLS