Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: DanteInfernum en 8 Noviembre 2013, 20:12 pm



Título: ¿Clase "sin" espacio de nombres?
Publicado por: DanteInfernum en 8 Noviembre 2013, 20:12 pm
La pregunta es bastante elemental; talvez por ser tan básica es que no consigo encontrar la respuesta por ningún lado...

Tengo una solución que consta de varios proyectos. Uno de estos proyectos tiene una clase, pero dentro de ésta no aparece declarado el espacio de nombre al cual pertenece. Sin embargo el compilador no da prablema alguno, así que supongo que el mismo Visual Studio se encarga de asignarle un espacio de nombres predeterminado.

He comprobado que el ámbito de esta clase sin espacio de nombres es el proyecto al que pertenece (no puedo acceder a ella desde los otros proyectos de mi solución).  Eso me lleva a pensar que su espacio de nombres es el mismo del proyecto al que pertenece, pero también he leído por ahí algo de que el espacio de nombres predetermiando es global namespace (cosa que no termino de entender por el momento).

¿Cuál es el espacio de nombres por defecto? ¿Es el mismo espacio de nombres del proyecto que contiene a la clase, u otro distinto asignado por Visual Studio automáticamente?


Título: Re: ¿Clase "sin" espacio de nombres?
Publicado por: WHK en 14 Noviembre 2013, 15:55 pm
Hola, no puedes acceder a esa clase desde otro proyecto dentro de la misma solución porque antes de usarla necesitas agregar la referencia de la clase en el proyecto donde quieres usarla... solo después de agregar esta referencia podrás hacer uso de "using namespacedelaclase" la cual le dirá al IDE y al interpretador que necesita hacer uso de esa librería en el proyecto o clase, en caso contrario no la podrás encontrar nunca.

Lo que no se es si la puedes llamar dentro del mismo proyecto, creo que debes usar "global::".

Dale un vistazo a esto:
http://msdn.microsoft.com/en-us/library/vstudio/c3ay4x3d.aspx


Título: Re: ¿Clase "sin" espacio de nombres?
Publicado por: DanteInfernum en 15 Noviembre 2013, 00:45 am
El problema es justamente ese, no sé el namespace de la clase (no la hice yo). El código de la clase es algo así:
Código
  1. public class
  2. {
  3.       public void Metodo()
  4.      {
  5.           // ...
  6.      }
  7. }
  8.  

No me cuesta nada retocar la clase y agregarle el namespace del proyecto, pero nada más tengo curiosidad de saber cuál es namespace que te asigna C# por defecto si no se especifica ningún namespace como en este caso.