好吧,我有一個名爲BusinessLayer的C#項目,它生成名爲BusinessLayer的程序集,名稱空間是BusinessLayer。愚蠢的命名空間問題
在這個項目裏面,我使用文件夾來存儲代碼。一個文件夾稱爲FilterElements,它具有名爲FilterKeyReversal,FilterRandom和FilterToday的文件夾。
讓我們以FilterRandom文件夾爲例。它有一個名爲LessThan10DaysGreaterThan50A的類,其名稱空間爲BusinessLayer.FilterElements.FilterRandom和一個名爲RunFilter()的公共靜態方法;
在使用此方法的網站頁面後面的代碼中,我使用了使用BusinessLayer的語句。我還有另一個使用語句,使用BusinessLayer.FilterElements。
我倒覺得,露出LessThan10DaysGreaterThan50A類的RunFilter()方法,我可以使用下面的語法:FilterRandom.LessThan10DaysGreaterThan50A.RunFilter(),但我得到以下錯誤:名稱FilterRandom不在存在當前上下文。
如果我使用下面的語法內聯,錯誤消失:BusinessLayer.FilterElements.FilterRandom.LessThan10DaysGreaterThan50A.RunFilter(),或者如果我使用using語句:使用BusinessLayer.FilterElements.FilterRandom,語法如下工作: LessThan10DaysGreaterThan50A.RunFilter()。
我寧願使用FilterRandom.LessThan10DaysGreaterThan50A.RunFilter(),因爲它似乎使代碼更具可讀性。如果我使用以下使用FilterRandom = BusinessLayer.FilterElements.FilterRandom語法的別名,我可以得到我想要的,但不太喜歡使用別名的想法,因爲它可能導致混淆。
我認爲既然我的BusinessLayer命名空間具有嵌套命名空間,我可以拿起剩餘的命名空間,但我似乎無法讓它工作。任何人都知道如何在不使用別名的情況下完成這項工作,或者我每次都必須使用整個名稱空間名稱?
謝謝。
這適用於VB.NET,但不適用於C#。別名就是你所擁有的。 – 2010-11-11 18:58:17
我第二@Hans - 前幾天遇到了這個問題,我自己。順便說一句,爲什麼有一個類被鎖定到一個高度特定的業務規則(少於10天等),而不是隻實現一個可以在任意日期範圍內運行的過濾器? – 2010-11-11 18:59:42
如何嵌套內部類而不是命名空間?或者像FilterRandom.FilterLessThan10DaysGraterThan50A()代替。 – mellamokb 2010-11-11 19:01:53