5

estoy reorganizando mis archivos de origen en una única solución con un solo proyecto, debido a diversas razones:C organización # solo proyecto

Esto me deja con muchos espacios de nombres, que de todas formas dividido en varios archivos. Hasta el momento, estoy usando esta convención: teniendo en cuenta el espacio de nombres Company.Project.A, los archivos se denominan A.f1.cs, A.f2.cs y así sucesivamente, y el espacio de nombres Company.Project.B está dividido través B.f1.cs, B.f2.cs, etc.

Dada la restricción solo proyecto, hay ¿Hay alguna forma mejor de organizar múltiples archivos en múltiples espacios de nombres?

Respuesta

11

Sí - use las carpetas.

Si crea una carpeta dentro de un proyecto, las nuevas clases dentro de esa carpeta usarán automáticamente el nombre de la carpeta como base para el espacio de nombres.

Por ejemplo, si usted tiene un proyecto con un espacio de nombres por defecto de "Company.Project" y una carpeta "Foo" que contiene "Bar.cs" acabará con:

using System; // Etc 

namespace Company.Project.Foo 
{ 
    class Bar 
    { 
    } 
} 
2

Así que la la solución está aquí. Son carpetas. Pero a veces es complicado. En primer lugar, es una buena idea tener un archivo por clase. Si empaqueta varias clases en un solo archivo, tendrá problemas para encontrarlas con el tiempo.

Segundo aspecto de las carpetas: si hace clic en una carpeta y elige, por ejemplo, "Agregar -> Nuevo elemento", este elemento se colocará en la carpeta seleccionada. ¡Pero ten cuidado! Si mueve archivos entre carpetas, los espacios de nombres no se actualizan.

Es una fuente común de proyecto de desorden. Justo después de un tiempo, puede terminar con un proyecto en el que tenga una carpeta y archivos organizados limpios, pero que no reflejen los espacios de nombres. Entonces, por ejemplo, si tiene la clase MyClass en la carpeta MyFolder, asegúrese de que su espacio de nombres para esta clase sea algo así como MyApp.MyFolder y no una basura vieja.

Así que si no empaqueta clases en un archivo y mira si los espacios de nombres de las clases reflejan la jerarquía de carpetas, está en el buen camino para que su proyecto sea muy fácil de leer y navegar.

1

100% de acuerdo con Jon Skeet.

Para obtener más información general a nivel de carpeta, estamos creando carpetas que rompen la estructura del espacio de nombres al ponerles un guión bajo.

Cuestiones relacionadas