Aparece la advertencia como esta Si usted sabe de qué se trata, explique & ayúdame a deshacerse de él. Nam.El tipo de argumento no cumple con CLS, ¿por qué?
Respuesta
En el archivo AssemblyInfo.cs, usted probablemente tiene una línea que dice
[assembly:CLSCompliant(true)]
Si, a continuación, se deben cumplir las siguientes reglas. (Copia-Pasta de http://www.devarticles.com/c/a/C-Sharp/Making-Your-Code-CLS-Compliant/)
tipos sin signo no deben ser 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 ser parte de miembros privados.
Los tipos inseguros como punteros no se deben usar con miembros públicos. Sin embargo, se pueden usar con miembros privados.
Los nombres de las clases y los miembros no deberían diferir solo en función de su caso. Por ejemplo, no podemos tener dos métodos llamados MyMethod y MYMETHOD.
Solo las propiedades y métodos pueden estar sobrecargados, los operadores no deben estar sobrecargados.
Los tipos sin firmar pueden ser parte de una interfaz pública, si no exponen ninguna funcionalidad cuyo código escrito en un idioma sin tipos sin firmar pueda querer usar pero no pueda hacerlo.Por ejemplo, un método para almacenar un valor sin signo de 32 bits en cuatro bytes consecutivos podría contener legítimamente sobrecargas tanto para 'UInt32' como para' Int64', y una clase podría proporcionar un método para convertir cuatro bytes consecutivos en 'UInt32' si también proporcionado uno que devolvería el mismo valor que un 'Int64'. – supercat
algo más de información:
Y se puede conseguir esas advertencias en un montaje compatible con CLS, que hace referencia a un conjunto no compatible con CLS (y expone su no-CLS-miembros compatibles):
Primer enlace roto. – rkg
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 proporcionan gran detalle sobre el motivo por el que se da esta advertencia.
Sin embargo, para resumir, el código escrito para Common Language Runtime (como C#) es CLS-obediente si puede interactuar con otros lenguajes diseñados para el CLR. Esto significa que ciertos tipos de datos específicos del idioma que no son comunes a todo el tiempo de ejecución no son compatibles. La solución rápida y fácil para esto en lo que respecta a variables y métodos es darles el modificador de visibilidad internal
que especifica que el método, clase, propiedad, etc. no es visible fuera del ensamblaje para el que se está construyendo. Esto solo debe hacerse en aquellos artículos que no necesita o desea que se usen fuera del ensamble; para aquellos que desee que sean visibles, use tipos de datos que cumplan con CLS.
- 1. ¿Por qué mi función no cumple con CLS? Tipo
- 2. ¿Por qué mi código no cumple con CLS?
- 3. ¿Por qué debería escribir el código que cumple con CLS?
- 4. ¿Por qué este nombre con guión bajo no cumple con CLS?
- 5. ¿Puede un ensamblaje que incluye una referencia que no cumple con CLS ser compatible con CLS?
- 6. ¿Cuáles son las consecuencias del código que NO cumple con CLS en .NET?
- 7. ¿Por qué los unsigned int no son CLS?
- 8. ¿Por qué getcwd() no cumple con ISO C++?
- 9. ¿Por qué no se cumple el uso múltiple de PreApplicationStartMethodAttribute?
- 10. ¿Por qué el tipo del argumento var-arg es "aproximado"?
- 11. El nombre de referencia no es compatible con CLS
- 12. Constructores con el mismo tipo de argumento
- 13. MATLAB subsref: {} con el argumento de cadena falla, ¿por qué?
- 14. ¿Por qué no puedo usar un argumento de tipo en un parámetro de tipo con múltiples límites?
- 15. ¿Por qué Interlocked.Exchange no es compatible con el tipo booleano?
- 16. ¿Por qué no puedo pasar explícitamente el argumento tipo a un método Java genérico?
- 17. ¿Por qué Safari no cumple con mi directiva de control de caché?
- 18. argumento de tipo 'NoneType' no está Iterable con ModelForm
- 19. ¿Existe alguna herramienta para verificar el cumplimiento de CLS?
- 20. 'matrices como argumentos atributo no es compatible con CLS' advertencia, pero no hay información de tipo dado
- 21. ¿Cumple Drupal con el paradigma de MVC?
- 22. ¿Por qué el argumento del tipo de mapa C++ requiere un constructor vacío cuando se usa []?
- 23. ¿Por qué una declaración de función con un argumento const permite llamar a una función con un argumento no const?
- 24. ¿Cómo puedo saber qué dependencia de ELF no se cumple?
- 25. Por qué argumento de búsqueda Dependiente no funciona con plantilla de función dynamic_pointer_cast
- 26. Por qué marcar el argumento de función como volátil
- 27. ¿Por qué no está sellado el tipo de clase y qué puedo hacer con eso?
- 28. ¿Por qué GHCi no puede resolver el tipo de [[]]?
- 29. ¿Por qué el compilador no realiza una conversión de tipo?
- 30. Tipo de argumento de cierre de parámetro múltiple no deducido
¿Cómo es INotificationService? –