2011-09-02 12 views
7

Duplicar posible:
Should Usings be inside or outside the namespace¿Debería 'usar' estar dentro del espacio de nombres o afuera?

¿Hay razones técnicas para preferir esta

namespace Foo 
{ 
    using System; 
    using System.IO; 

en lugar del predeterminado

using System; 
using System.IO; 

namespace Foo 
{ 
+1

Ver http://stackoverflow.com/questions/125319/should-usings-be-inside-or-outside-the-namespace – chrisaut

+0

Funciona en ambos sentidos, pero en general las personas lo prefieren fuera del espacio de nombres, pero es posible que vea esto [Usar dentro de Namespace o Outside] (http://stackoverflow.com/questions/125319/should-usings-be-inside-or-outside-the-namespace) –

Respuesta

7

Eric Lippert explains this.

En general, son idénticos.
Sin embargo, las declaraciones using en el espacio de nombres pueden ver espacios de nombres y alias incluidos fuera del espacio de nombres.

0

Sin motivo técnico, solo una preferencia. por supuesto, el segundo trozo de código parece más limpio.

2

Casi * la única diferencia entre los dos sería si utilizó más de un espacio de nombres en el mismo archivo (o si utilizó el mismo espacio de nombres más de una vez). No estoy seguro de por qué harías eso, bu Por supuesto que puede:

using System; 

namespace FooNamespace 
{ 
    using System.IO; 

    class Foo 
    { 
     // you can use types from System and System.IO directly here 
    } 
} 

namespace BarNamespace 
{ 
    class Bar 
    { 
     // you can't use types from System.IO directly here 
     // but you can use types from System 
    } 
} 

* Véase la respuesta SLaks'.

+0

Esto es útil para los métodos de extensión. http://blog.slaks.net/2011/07/creating-local-extension-methods.html – SLaks

Cuestiones relacionadas