例1,命名空間Be,與類名Be沖突
namespace A{
namespace Be{}
}
與
namespace A{
public class Be{}
}
例2,類名Be,與類名Be沖突
namespace A{
public class Be{}
}
與
namespace A{//比如這是在另一個程序集
public class Be{}
}
例3,命名空間相同,不會沖突
namespace A{
public namespace Be{}
}
namespace A{//比如這是在另一個程序集
public namespace Be{}
}
類名與命名空間不能重名會導致一個問題,
比如,程序集1,定義了靜態方法,A.Be.StaticFun1
想要在程序集2,定義同命名下的靜態方法,就不可能了,,
就像沒辦法定義,A.Be.StaticFun2
這感覺挺不對的
還有,定義一個靜態方法,為什么要去定義一個類,或者空類呢
靜態方法,本身和類就沒什么關系,
本身就應該只是在某一個命名空間下就可以了
語法上來說挺不順暢的,,,
沒有解決辦法,吐槽。。。。
當然,這種應用比較少數,但個人覺得還是挺需要的,
比如,
程序集已開發為.net2.0,要再做擴展,不要動原來的代碼,
想另起個程序集,為.net4.0的,
這時發現,靜態方法所在的類已被定義了,
不能再定義相同的類,或命名空間,就不能定義出相同路徑下的其他名稱的靜態方法了
所以,如果有相似的功能需要確另外定義路徑,就為了寫個靜態方法,特意定義了一個類,
想來感覺把名稱分為兩種,類名,和命名空間,
兩者不應該沖突
類名不可以重復
命名空間就無所謂,
把靜態方法都歸到命名空間下,
這樣靜態方法就可以在不同程序集的相同命名空間下,進行擴展。。。。
可以就更好了,
另外,注意到,c#有個擴展方法的寫法,只是支持對象的方法擴展,但也不能是類下靜態方法的擴展,