Partager via


Le type de paramètre '<NomParamètre>' n'est pas conforme CLS

Mise à jour : novembre 2007

Type of parameter '<parametername>' is not CLS-compliant

Une procédure est marquée comme <CLSCompliant(True)> mais déclare un paramètre avec un type marqué comme <CLSCompliant(False)>, non marqué ou non qualifié à cause de sa non conformité.

Pour qu'une procédure soit conforme Spécification CLS (Common Language Specification) (CLS), elle ne doit utiliser que des types conformes CLS. Cette règle s'applique aux types des paramètres, au type de retour et aux types de toutes ses variables locales.

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

Lorsque vous appliquez 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 : BC40028

Pour corriger cette erreur

  • Si la procédure doit prendre un paramètre de ce type particulier, supprimez l'CLSCompliantAttribute. La procédure ne peut pas être conforme CLS.

  • Si la procédure doit être conforme CLS, remplacez le type de ce paramètre 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.

  • Si vous utilisez des objets Automation ou COM, gardez à l'esprit que certains types ont des largeurs des données différentes de celles du .NET Framework. Par exemple, int correspond souvent à 16 bits dans d'autres environnements. Si vous passez un argument de 16 bits à un tel composant, déclarez-le comme type de données Short et non comme Integer dans votre code managé Visual Basic.

Voir aussi

Concepts

Écriture d'un code conforme CLS