2014-06-19 91 views
0

我想知道如果有人以前看過這種情況,或者有什麼建議可能會導致它。我有一個名爲Dashboard的定製類,它存在於名爲Dashboard.Data.Client的項目中。在同一個項目中,如果我嘗試引用類的命名空間,如:爲什麼我不能爲一個名稱空間聲明using語句,但可以直接在類型之前聲明這個名稱空間?

using Alliance.Dashboard.Data.Client.Models; 

那麼我不能使用類型Dashboard。但是,在任何需要使用Dashboard的地方,我都可以輸入完全限定的名稱,並且工作正常。例如:

Alliance.Dashboard.Data.Client.Models.Dashboard myDashboard = new Alliance.Dashboard.Data.Client.Models.Dashboard(); 

的幾個注意事項,我相信你會想:

  1. 如果我只是在一個類類型Dashboard,然後嘗試解決這個問題,該選項不可用。

  2. 如果存在衝突的命名空間,我以前就看到過這個問題。在這種情況下,必須給出完全合格的名稱。這裏情況不同。沒有衝突的命名空間。

  3. 其他類在這個項目中解決得很好。事實上,這是一個場景:從IDashboardRepository這個問題存在試圖宣佈Dashboard正如我所描述的。 IDashboardRepository位於同一個項目中,但位於不同的名稱空間中:Alliance.Dashboard.Data.Client.Interfaces。但是,反向工作正常。換句話說,我可以使用接口名稱空間作爲Dashboard內的使用語句,但不能在界面中使用Dashboard而不使用完全限定名稱。

僅供參考,這裏是我的Dashboard類的代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace Alliance.Dashboard.Data.Client.Models 
{ 
    public class Dashboard 
    { 
     public System.Guid DashboardID { get; set; } 

     public string DashboardName { get; set; } 

     public byte[] Instance { get; set; } 

     public bool IsDeleted { get; set; } 

     public byte[] Concurrency { get; set; } 
    } 
} 
+1

「那麼我不能使用類型儀表板」 - 當您嘗試時,您收到的編譯器錯誤是什麼? – Blorgbeard

+4

更重要的是,你能想出一個可重複使用的簡單例子嗎? – dcastro

+1

在當前命名空間或其他使用導入中,是否有另一個類或其他稱爲「Dashboard」的其他類?如果模糊不清,則必須明確聲明要使用哪一個。另一種方式是在別名中使用別名。 – TyCobb

回答

2

嗯,我覺得在這一個非常愚蠢的。簡而言之,名稱空間和類名稱是相同的。編譯器認爲我已經進入名稱空間目錄的開頭而不是類名。再次感謝您花時間幫助另一個關節頭。

相關問題