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