[英]Why can't I declare a using statement for a namespace, but can directly declare the namespace before the type?
我想知道是否有人以前見過這種情況,或者對可能導致這種情況的任何建議。 我有一個名為Dashboard
的自定義類,該類存在於名為Dashboard.Data.Client
的項目中。 在同一項目中,如果我嘗試引用該類的名稱空間,例如:
using Alliance.Dashboard.Data.Client.Models;
那么我不能使用Dashboard
類型。 但是,在需要使用Dashboard
任何地方,我都可以鍵入完全限定的名稱,並且可以正常使用。 例:
Alliance.Dashboard.Data.Client.Models.Dashboard myDashboard = new Alliance.Dashboard.Data.Client.Models.Dashboard();
我確信您會想知道一些注意事項:
如果我只是在課堂上鍵入Dashboard
,然后嘗試解決它,則該選項不可用。
如果存在沖突的命名空間,我以前已經看到過此問題。 在這種情況下,必須提供完全限定的名稱。 這里情況不同。 沒有沖突的名稱空間。
在本項目中,其他類也可以很好地解決。 實際上,這是一個場景:從IDashboardRepository
開始,正如我所描述的,嘗試聲明Dashboard
存在此問題。 IDashboardRepository
位於同一項目中,但位於不同的命名空間中: Alliance.Dashboard.Data.Client.Interfaces
。 但是,反向工作正常。 換句話說,我可以在Dashboard
中將接口名稱空間用作using語句,但在沒有完全限定名稱的接口中,不能將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; }
}
}
好吧,我對此感到非常愚蠢。 簡而言之,名稱空間和類名稱相同。 編譯器認為我已經輸入了名稱空間目錄的開頭,而不是類名。 再次感謝您抽出寶貴時間來幫助另一個轉向節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.