2012-09-28 17 views
11

Eski stil kodları düzgün bir şekilde stylecop ile çizmeye çalışıyordum. İçinde bulunan ifadeleri koymak için sorar. Birisi hariç hepsi için çalıştı. Sorunu aşağıdaki kodla azaltmıştım.Ad alanı içinde deyimi kullanarak ekleme başarısız olur

namespace B.C 
{ 
    using System; 

    public class Hidden 
    { 
     public void SayHello() 
     { 
      Console.WriteLine("Hello"); 
     } 
    } 
} 

namespace A.B.C 
{ 
    using B.C; 

    public class Program 
    { 
     static void Main(string[] args) 
     { 
      new Hidden().SayHello(); 
     } 
    } 
} 

bu derleme hatası Error

"tipi veya ad alanı adı 'Gizli' bulunamadı (bir kullanarak yönergesi veya bir derleme başvurusu eksik?)" Verir.

Ben B.Ç kullanarak taşırsanız; numaralı adresin üstünde yer alan A.B.C, daha sonra düzgün bir şekilde oluşturulmuştur. Gizli sınıf farklı ekip tarafından geliştirildi ve biz bunu değiştiremeyiz.

+2

ile belirtmeniz gerekir. Belki 'B.C' ad alanı 'A.B.C' ad alanındayken A.B.C' için yanlış olarak değerlendirilmiş olabilir mi? Küresel kapsamda herhangi bir isim alanını bilmediği zaman, B 'yi ilk önce' A''da (B) 'yi (A') (“A.B'”) kabul etmiyor. –

cevap

15

A ad alanı içinde olduğunuzdan, B.C aslında A.B.C olacaktır.

using global::B.C; 
+0

+1 perfect ..... – Habib

+0

+1 İyi bir açıklama –

+2

Aynı zamanda, her yerde ad alanı cehenneminden kaçmak için, sadece bir kullanım ifadesinde değil, aynı zamanda bu işe yaramaya değer. (ör. yeni global :: MyNS.BlahBlah() ') –

2

B.C. A.B.C. çakıştığını:

Kullanım global:: Eğer kökünden aradığınız belirtmek için B.C'yi başka bir şeye yeniden adlandırmanız veya global