El tipo de miembro '<nombre de miembro>' no es compatible con CLS

El tipo de datos especificado para este miembro no forma parte de Common Language Specification (CLS). Éste no es un error de su componente, porque .NET Framework y Visual Basic admiten este tipo de datos. Sin embargo, es posible que otro componente escrito en código estrictamente conforme a CLS no admita este tipo de datos. Puede que dicho componente no pueda interactuar correctamente con su componente.

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

De forma predeterminada, este mensaje es una advertencia. Para obtener más información sobre cómo ocultar las advertencias o tratar las advertencias como errores, consulte Configurar advertencias en Visual Basic.

Identificador de error: BC40025

Para corregir este error

  • Si su componente sólo dispone de interfaz con otros componentes de .NET Framework o no dispone de interfaz con ningún otro componente, no necesita cambiar nada.

  • Si dispone de interfaz con un componente que no está escrito para .NET Framework, puede determinar, mediante la reflexión o la documentación, si admite este tipo de datos. Si lo hace, no necesita cambiar nada.

  • Si dispone de interfaz con un componente que no admite este tipo de datos, debe reemplazarlo con el tipo conforme a CLS más próximo. Por ejemplo, si no necesita el intervalo de valores por encima de 2.147.483.647, tal vez pueda utilizar Integer en lugar de UInteger. Si necesita el intervalo extendido, puede reemplazar UInteger por Long.

  • Si crea una interfaz con objetos de automatización o COM, tenga en cuenta que algunos tipos tienen anchos de datos distintos que en .NET Framework. Por ejemplo, uint suele ser de 16 bits en otros entornos. Al pasar un argumento de 16 bits a esos componentes, declárelo como UShort en lugar de UInteger en el código administrado de Visual Basic.

Vea también

Conceptos

Reflexión

Escribir código conforme con CLS