2012-08-04 14 views
5

Olası Çoğalt:
Should Usings be inside or outside the namespace"Ad alanı" nın içinde veya dışında "içe aktarma" (içe aktarma) arasındaki fark nedir?

Ben meclisleri kullanmanın iki yaklaşımı gördük. Fark ve ben de formatına faydası yoktur inanmıyorum diğer

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

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

(http://stackoverflow.com/questions/2026466/c-sharp- (Ben gracefuly çok kod kopyalanamaz yerden) bu bağlantıyı daha ayrıntılı bir açıklama görünüm için

ad-namespace-directive-in-nested-namespaces kullanarak) çok iyi bir soru bulacaksınız 'kodun arkasında ne olur?' sorusuna – Steve

+0

Ayrıca bkz. http://blogs.msdn.com/b/ericlippert/archive/2007/06 /25/inside-or-outside.aspx –

cevap

0

Aslında bunlar arasında bir teneke farkı var.

Örneğin aşağıdaki düşünün: o System ad bakarak önce Outer ad alanında Math sınıf bulacaksınız olarak bu konuda

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

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

Derleyici, bir hata iletisi alır. Ve 'un içindeMath ad alanı içinde hiçbir PI yoktur.

durumda, eğer, bunun yerine, içindeki sınıf beyanı using Systemkoymak, o kadar hata üretilecek, ilk tarafından derleyici tarafından seçilecektir.

Bunun yararı açıktır: Eğer birisi seni yazdım aynı ad alanında Math sınıf yazdığı bazı kodları, alırsanız durumunda, söz konusu sorunu geçmenin bir şans var. Bu [wiki soruya] da Should Usings be inside or outside the namespace

0

arasından birine kullanmanın yararları nedir. Sadece takım kodlama standartlarına ve okunabilirliğe geliyor.