Saltar al contenido

El tipo de argumento no cumple con CLS, ¿por qué?

Mantén la atención porque en esta división hallarás el arreglo que buscas.Esta noticia ha sido evaluado por nuestros expertos para garantizar la calidad y exactitud de nuestro post.

Solución:

En su archivo AssemblyInfo.cs, probablemente tenga una línea que diga

[assembly:CLSCompliant(true)]

Si lo hace, entonces se deben cumplir las siguientes reglas. (Copia-Pasta de http://www.devarticles.com/c/a/C-Sharp/Making-Your-Code-CLS-Compliant/)

  1. Los tipos sin firmar no deben formar parte de la interfaz pública de la clase. Lo que esto significa es que los campos públicos no deben tener tipos sin firmar como uint o ulong, los métodos públicos no deben devolver tipos sin firmar, los parámetros pasados ​​a la función pública no deben tener tipos sin firmar. Sin embargo, los tipos sin firmar pueden formar parte de miembros privados.

  2. Los tipos no seguros, como los punteros, no deben usarse con miembros públicos. Sin embargo, se pueden usar con miembros privados.

  3. Los nombres de las clases y los nombres de los miembros no deben diferir solo en función de su caso. Por ejemplo, no podemos tener dos métodos llamados MyMethod y MYMETHOD.

  4. Solo las propiedades y los métodos pueden sobrecargarse, los operadores no deben sobrecargarse.

Esta es una vieja pregunta, pero pensé que se debía una mejor explicación para futuros investigadores (como yo).

En primer lugar, los enlaces en las otras respuestas brindan gran detalle sobre el motivo por el cual se da esta advertencia.

Sin embargo, para resumir, el código escrito para Common Language Runtime (como C#) es compatible con CLS si puede interactuar con otros lenguajes diseñados para CLR. Esto significa que ciertos tipos de datos específicos del idioma que no son comunes a todo el tiempo de ejecución no cumplen. La solución rápida y fácil para esto con respecto a las variables y los métodos es darles el modificador de visibilidad. internal que especifica que el método, la clase, la propiedad, etc. no es visible fuera del ensamblaje para el que se está compilando. Esto solo debe hacerse en aquellos artículos que no necesita o no desea usar fuera del ensamblaje; para aquellos que desea que sean visibles, use tipos de datos que cumplan con CLS.

Algo más de información:

  • Escribir código compatible con CLS

Y puede obtener esas advertencias en un ensamblado compatible con CLS, que hace referencia a un ensamblado no compatible con CLS (y expone sus miembros no compatibles con CLS):

  • ¿Puede un ensamblado que incluye una referencia no compatible con CLS ser compatible con CLS?
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *