2012-08-04 11 views
5

Duplicar posible:
Should Usings be inside or outside the namespaceDiferencias entre "usar" (importar) dentro o fuera del "espacio de nombres"?

he visto dos enfoques del uso de montajes. Cuál es la diferencia y los beneficios de usar uno sobre otro

namespace Assembly 
{ 
    using System.Data; 
    class Foo{ 
    ... 
    } 
} 

using System.Data; 
namespace Assembly 
{ 
    class Foo{ 
    ... 
    } 
} 
+0

también en esta [pregunta wiki] (http://stackoverflow.com/questions/2026466/c-sharp- using-namespace-directive-in-nested-namespaces) encontrará un muy buen 'qué pasa detrás del código' a su pregunta – Steve

+0

Vea también http://blogs.msdn.com/b/ericlippert/archive/2007/06 /25/inside-or-outside.aspx –

Respuesta

0

En realidad, hay una pequeña diferencia entre ellos.

Considerar siguiente ejemplo:

//File1.cs 
using System; 
namespace Outer.Inner 
{ 
    class Foo 
    { 
     static void Bar() 
     { 
       double d = Math.PI; 
     } 
    } 
} 

// File2.cs 
namespace Outer 
{ 
    class Math 
    { 
    } 
} 

compilador en este obtendrá un error, ya que se encuentra en la clase MathOuter espacio de nombres, antes de buscar en System espacio de nombres. Y dentro de queMath espacio de nombres no hay ningún PI.

En el caso, si, en cambio, poner using Systemdentro la declaración de clase, que será recogido por el compilador por primera , por lo que no se producirá ningún error.

El beneficio de esto es clara: en el caso si usted consigue algo de código, donde alguien escribió Math clase en el espacio de nombres misma que escribió, usted tiene la oportunidad de solucionar ese problema.

Para ver una explicación más detallada en este enlace (de donde gracefuly copiado el código) Should Usings be inside or outside the namespace

0

No creo que haya beneficio en ninguno de los formatos. Simplemente se reduce a los estándares de codificación del equipo y la legibilidad.

Cuestiones relacionadas