2011-09-02 6 views
7

Eventuali duplicati:
Should Usings be inside or outside the namespace"Utilizzare" deve essere all'interno del namespace o all'esterno?

Esistono motivi tecnici per preferire questo

namespace Foo 
{ 
    using System; 
    using System.IO; 

al posto del default

using System; 
using System.IO; 

namespace Foo 
{ 
+1

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

+0

Funziona in entrambi i modi, ma in genere le persone lo preferiscono al di fuori dello spazio dei nomi ma si potrebbe guardare a questo [Utilizzo di Namespace o Esterno] (http://stackoverflow.com/questions/125319/should-usings-be-inside-or-outside-the-namespace) –

risposta

7

Eric Lippert explains this.

In generale, sono identici.
Tuttavia, le istruzioni using nello spazio dei nomi possono visualizzare spazi dei nomi e alias inclusi al di fuori dello spazio dei nomi.

0

Nessun motivo tecnico, solo una preferenza. ovviamente il secondo pezzo di codice sembra più pulito, però.

2

Quasi * l'unica differenza tra i due sarebbe se si fosse utilizzato più di uno spazio dei nomi nello stesso file (o se si fosse utilizzato lo stesso spazio dei nomi più di una volta). Non sono sicuro del perché lo faresti, ma puoi sicuramente:

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 
    } 
} 

* Vedere la risposta di SLaks.

+0

Questo è utile per i metodi di estensione. http://blog.slaks.net/2011/07/creating-local-extension-methods.html – SLaks

Problemi correlati