2012-10-23 202 views
4

在工作中,他們對命名空間的命名(在我的時間之前)已經非常詳盡。一個典型的命名空間可能是C#命名約定名稱空間

CompanyName.SubCompanyName.DepartmentName.ProjectName.UniqueProjectName.ProjectName.FilteredProjectName

可悲的是,我不是在開玩笑。問題是,儘管對項目的生活地點來說有些清晰,但它很嘈雜;我想縮短它。

我想使用using關鍵字(關於聲明哪些名稱空間將被使用),然後等於符號使用名稱空間別名。現在這個問題變成了命名空間聲明和類屬性之間的不明確性。例如

Project.Message 

目前的情況是,我們沒有任何的跡象,如果項目是一個靜態類,命名空間或已初始化對象的名稱(雖然單詞this.將有助於澄清)的名稱。

所以,在那個背景下,我的問題是關於命名約定。對我來說,這將是有意義的使用匈牙利風格的命名約定(我知道現在被認爲是相當過時的這些天),所以我可以做類似使用

nsProject = CompanyName.SubCompanyName.DepartmentName.ProjectName.UniqueProjectName .ProjectName.FilteredProjectName

請注意,我用ns(namespace)作爲它的前綴。因此,如果代碼看起來像以下任何一種情況,至少有一些清晰:

this.Project.Message 
nsProject.Message 
Project.Message 

上面例子中的3現在非常清楚:第一已經在該項目被宣佈,第二是命名空間第三個可能是一個靜態方法調用。

是否有人對此方法有任何意見;我是否在重新發明輪子(是否已經制定了指導方針),還是有人對可以做什麼有不同的看法?

編輯

的另一個原因是想使用別名的是當前的命名空間不匹配(或在一些地方任何意義)的文件夾結構。因此,我不僅要確保使用哪種類型的對象/名稱空間,而且我的別名也將作爲文件夾位置的指南。我知道,這可能是黑客攻擊等,但(根據本文的評論),這是許多人的第一階段。

+3

與其爲您的命名空間結構難以處理的問題找到解決方法,爲什麼不正面解決問題?爲什麼你需要別名? (爲什麼不僅僅是「正常的」使用指令?) –

+0

每個項目引用多個項目,所有項目名稱都非常相似。問題是追蹤代碼。在VS2005中,我無法使用Go To Definition(VS不響應),所以我不得不手動跟蹤它。沒有文檔,所以我也在閱讀代碼,逐行了解它。因此,我想要一些更容易理解的東西,但是清楚地知道對象存在於哪個命名空間中。 – Dave

+6

好吧,這聽起來像你有多個問題 - 再次,我敦促你嘗試從源頭上解決問題,而不僅僅是解決症狀。 –

回答

2

我不知道任何「官方」指導方針,但是每當我爲命名空間別名時,我通常會使用公司和項目的縮寫。這將導致(使用你的例子):

this.Project.Message.Send(); 
CompanyProject.Message.Send(); 
Project.Message.Send(); 

我喜歡加上後綴上面匈牙利BTW(主觀我知道)。

+0

我同意,該帖子將得到主觀答案,如果沒有指南 - 感覺我得到的是沒有指導方針,這是非常取決於團隊!感謝您的時間。 – Dave