2009-04-20 24 views
15

¿Hay alguna forma de usar un espacio de nombres y luego hacer que use automáticamente todos los espacios de nombres secundarios?Espacio de nombres y espacios de nombres secundarios

Ejemplo:

namespace Root.Account 
{ 
//code goes here 
} 

namespace Root.Orders 
{ 
//code goes here 
} 


//New File: 
using Root; 

Para que yo use el código en Root.Account, necesitaría añadir usando Root.Account a mi código.

Me gustaría ser capaz de decir usando Root y hacer que recoja cualquier clase de espacio de nombres secundario para su uso.

Si esto tiene sentido, ¿es esto posible?

Gracias

+0

¿Qué está realmente tratando de lograr? –

Respuesta

22

No, no hay nada que funcione de esta manera abajo el árbol. Sin embargo, no necesita incluir el uso de directivas para ir al hasta el árbol. En otras palabras, si utiliza:

namespace Root.Orders 
{ 
    // Code 
} 

entonces cualquier tipo de Root ya son visibles.

+3

Bien, esto es interesante. Entonces, digamos que tenía un espacio de nombres Root.Orders.OrderItems y lo usé en mis directivas, ¿podría utilizar cualquier clase en Root y Root.Orders? – CodeLikeBeaker

+2

No, solo son los espacios de nombres que están más arriba en la jerarquía del espacio de nombres de su tipo que se buscan. En otras palabras, es la directiva del espacio de nombres la que tiene esta "característica", no la directiva de uso. –

1

No, realmente no. =)

+0

Bueno, pensé en intentar :) ¡gracias! – CodeLikeBeaker

0

.NET/C# no admite esta forma de espacio de nombres usando.

9

No, using Directiva en C# does not allow esto:

Crear una directiva using a utilizar los tipos en un espacio de nombres sin tener que especificar el espacio de nombres. Una directiva de uso no le da acceso a espacios de nombres que están anidados en el espacio de nombre que especifique.

VB.NET, sin embargo, supports comportamiento algo más estrecha con Imports declaración:

El alcance de los elementos puestos a disposición por una instrucción Imports depende de lo específico sea al utilizar la instrucción Imports. Por ejemplo, si solo se especifica un espacio de nombres, todos los miembros con nombre único de ese espacio de nombres y los miembros de los módulos dentro de ese espacio de nombres están disponibles sin calificación. Si se especifican un espacio de nombre y el nombre de un elemento de ese espacio de nombres, solo los miembros de ese elemento estarán disponibles sin calificación.

Es decir, si usted dice

Imports Root 

entonces usted será capaz de decir simplemente Orders.Whatever.

1

Por la forma en que declaró la pregunta original, suena como usted puede o no puede darse cuenta de que a partir de sólo usar:

using Root; 

La forma de clarificar su código más adelante es:

Account.Class obj = new Account.Class(); 
Orders.Class obj = new Orders.Class(); 

No TIENE que tener que usar Root.Account para acceder al código, y lo mismo con Root.Orders. Aparte de eso, no hay forma de usar recursivamente espacios de nombres. Creo que esto llevaría a un abuso con el uso del sistema;

-1

espacio de nombres como un contenedor de objetos. Pueden contener unión, estructura, clases, delegado e interfaz. La principal importancia del espacio de nombres en Asp.net C# es crear una organización hierática de programa.

aprender más para el blog ... http://asp-net-by-parijat.blogspot.in/2015/08/what-is-namespace-in-c-need-of.html

+2

Ha proporcionado una respuesta a una pregunta que ya ha recibido respuestas hace 6 años. Esto no es útil. – CodeLikeBeaker