Compartir a través de


El tipo de restricción del parámetro genérico <nombreDeTipo> no es conforme con CLS

Un tipo genérico está marcado como <CLSCompliant(True)>, pero una restricción en uno de sus parámetros de tipo especifica un tipo que está marcado como <CLSCompliant(False)>, no está marcado o no cumple los requisitos porque es un tipo que no conforme.

Para que un tipo sea conforme a la Independencia del lenguaje y componentes independientes del lenguaje (CLS), solo debe usar tipos conformes a CLS. Esto se aplica también a las restricciones en los parámetros de tipo de un tipo genérico.

Los siguientes tipos de datos de Visual Basic no son conformes con CLS:

Al aplicar el atributo CLSCompliantAttribute a un elemento de programación, establezca el parámetro isCompliant del atributo como True o False para indicar compatibilidad o incompatibilidad. No hay ningún valor predeterminado para este parámetro, por lo que debe proporcionar uno.

Si no aplica CLSCompliantAttribute a un elemento, se considera que no es conforme.

De forma predeterminada, este mensaje es una advertencia. Para obtener información sobre cómo ocultar las advertencias o cómo tratarlas como errores, vea Configuring Warnings in Visual Basic.

Id. de error: BC40040

Para corregir este error

  • Si el tipo genérico debe tomar un parámetro de tipo restringido por este tipo determinado, quite CLSCompliantAttribute. El tipo no puede ser conforme con CLS.

  • Si el tipo genérico debe ser conforme con CLS, cambie el tipo de esta restricción al tipo compatible con CLS más próximo. Por ejemplo, en lugar de UInteger , quizá pueda usar Integer si no necesita que el intervalo de valores esté por encima de 2.147.483.647. Si necesita el intervalo extendido, puede reemplazar UInteger por Long.

Consulte también