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