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 Math
Outer
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 System
dentro 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
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
Vea también http://blogs.msdn.com/b/ericlippert/archive/2007/06 /25/inside-or-outside.aspx –