說說c#的命名空間與類名沖突


例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#有個擴展方法的寫法,只是支持對象的方法擴展,但也不能是類下靜態方法的擴展,

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM