vs2017 visual studio codemaid c# stylecop

c# - visual - CodeMaid vs Stylecop usings organización



codemaid visual studio (2)

Estoy usando StyleCop durante bastante tiempo (y estoy acostumbrado). Un amigo mío me recomendó que también probara CodeMaid. Lo primero que he notado es la diferencia en la organización de los usos.

Stylecop ordena los usos en orden alfabético donde los usos del sistema se enumeran primero y los usos que no son del sistema se enumeran a continuación.

CodeMaid ordena los usos también en orden alfabético, pero no ordena los usos del sistema primero. Sólo ordena los usos alfabéticamente

Otra cosa que encontré es que CodeMaid le permite tener usos fuera del espacio de nombres (y por lo que sé, es mejor colocar todos los usos dentro del espacio de nombres)

Quería preguntar cuál es el orden correcto de uso y, finalmente, ¿por qué?


Descargo de responsabilidad: escribí CodeMaid.

  1. Cuando el sistema utiliza primero las declaraciones, Microsoft cambió sus preferencias predeterminadas en Visual Studio 2012 cuando comenzaron a introducir "Windows". asambleas. Más detalles aquí: Uso de directivas ordenadas en orden incorrecto

Puede volver a cambiarlo fácilmente al valor predeterminado de VS2010 en Herramientas-> Opciones-> Editor de texto-> C # -> Avanzado -> Coloque las directivas de ''Sistema'' primero al ordenar los usos ''. CodeMaid respeta la preferencia definida por Visual Studio, que por defecto es no poner las directivas del sistema primero.

  1. Para utilizar sentencias que se encuentran dentro del espacio de nombres, está en nuestro backlog para admitir ese https://trello.com/c/CLRxsIyc . StyleCop puede establecerlo como el estándar, pero si observa los ejemplos de MSDN, las plantillas de Visual Studio, etc., encontrará que usar sentencias fuera del espacio de nombres es mucho más convencional. Hay mucho debate sobre ese tema y nuestro objetivo es apoyar ambos enfoques.

Espero eso ayude. :)


No hay un ordenamiento "correcto", solo convenciones. La regla SA1210 de Stylecop establece explícitamente que los espacios de nombres del System se ubican primero:

Se produce una violación de esta regla cuando las directivas de uso no están ordenadas alfabéticamente por espacio de nombres. La clasificación alfabética de las directivas de uso hace que el código sea más limpio y fácil de leer, y puede ayudar a facilitar la identificación de los espacios de nombres que utiliza el código. Los espacios de nombres del sistema son una excepción a esta regla y siempre precederán a todos los demás espacios de nombres. Ver SA1208 para más detalles.

La regla SA1208 establece que los espacios de nombres del System deben estar antes que otros espacios de nombres, y el razonamiento es:

Colocar todos los sistemas que usan directivas en la parte superior de las directivas de uso puede hacer que el código sea más limpio y fácil de leer, y puede ayudar a que sea más fácil identificar los espacios de nombres que están siendo utilizados por el código.

Las reglas de Stylecop son convenciones, y Codemaid eligió una convención ligeramente diferente. Elige el que más te guste y pasa a las decisiones más importantes.

Vea esta pregunta sobre el using sentencias fuera del espacio de nombres.