说说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#有个扩展方法的写法,只是支持对象的方法扩展,但也不能是类下静态方法的扩展,

  

posted @ 2017-08-05 10:09  以函  阅读(4609)  评论(0编辑  收藏  举报