2011-05-28 29 views
6

quiero organizar mi solución añadiendo carpetas y organizar las clases en ellos
cómo acceder a estas clases como he tratado de acceder a ellos, pero no puede
carpetas parece paquetes en JavaC#: Clases en carpetas

+2

¿Estás usando Visual Studio? –

+0

sí, estoy usando VS2010 :) –

Respuesta

15

Cuando crea una carpeta en el proyecto de Visual C# normalmente crea un namespace para los elementos creados en esa carpeta. Debe agregar una declaración using blah.foldername al archivo C# donde intenta usar los elementos de la carpeta, o puede editar el archivo en la carpeta para usar namespace blah en lugar de namespace blah.folder.

+2

¿Qué pasa si no hay espacio de nombres? –

7

Si pregunta por las carpetas de soluciones, no se traducen al código resultante. Son simplemente una forma de organizar tus proyectos.

Si está creando carpetas en su proyecto para separar los archivos de código, tradicionalmente tendríamos que el espacio de nombres representa la estructura jerárquica de la solución/proyecto.

Luego solo incluye los espacios de nombres como lo haría normalmente.

¿Responde a esta pregunta?

7

Visual Studio imita la jerarquía de su proyecto en el disco duro. Cuando agrega una carpeta de solución en Visual Studio, crea una carpeta real debajo del directorio de su proyecto. Cualquier proyecto nuevo o archivo fuente que agregue a la carpeta de la solución en Visual Studio se establecerá de manera predeterminada en ese directorio. Además, y esto llega al corazón de su pregunta, cuando agrega un archivo C#, es decir, clase, a la carpeta de la solución, Visual Studio lo ubica en un sub-namespace de su proyecto.

Por ejemplo, si su proyecto se llama MiProyecto, el espacio de nombres por defecto será MiProyecto. Si se agrega una carpeta de soluciones a MiProyecto llamada MiCarpeta, todos los archivos nuevos, es decir, clases añadidas a esa carpeta desde dentro de Visual Studio tendrán un espacio de nombres por defecto de MyProject.MyFolder. Por lo tanto, con el fin de clases del espacio de nombres MiProyecto hacer referencia a las clases en el MyProject.MyFolder espacio de nombres, es necesario o bien optar por completo el nombre de la clase, por ejemplo, MyProject.MyFolder.MyClass o incluir una declaración en la using MyProject.MyFolder; la parte superior del archivo donde se usa la clase.