c#里一个文件夹下可以添加多个命名空间和类名相同的类么
在c#的一个项目文件下有一个类叫“类1”吧,我又添加了一个类,叫“类2”,在类2里面我写的命名空间和class类名能和类1里面的相同么?比如说:类1:namespaceX...
在c#的一个项目文件下有一个类叫“类1”吧,我又添加了一个类,叫“类2”,在类2里面我写的命名空间和class类名能和类1里面的相同么?
比如说:类1:namespace X class Y 那么类2的namespace还可以是X么 class 还能是Y么 展开
比如说:类1:namespace X class Y 那么类2的namespace还可以是X么 class 还能是Y么 展开
展开全部
追问
我尝试了一下,class Y也是可以的,但是class前用了一个partial ,不知道是不是这个原因,求大神解释
追答
很惭愧,我不是大神啊。
是的,就是它的缘故。
partial的意思是部分类。也就是说,会把运用了这个关键字的所有类的,最终编译成一个文件。所以如果你不运用代表部分类的关键字,也就是每个类是一个独立的类,那么一个命名空间下只能有一个类。
如果你对多个类运用了partial关键字,最终生成的代码,其实还是一个类。其实,还是没有违背一个命名空间下只能有一个类。
partial关键字的用途。
partial关键字,一开始出现主要是为了解决asp.net中.aspx页面的问题。
我们都知道.aspx页面可以拖放控件,可以调整控件的样式,可以编写事件。
C#中一切操作即对象,所以每一个.aspx页面一定要有一个类,来表示该页面中的所有控件,并且设置所有控件的样式(这里是生成的第一个类,来描述控件信息)。
.aspx页面还可以让用户自己编写代码(这里也要生成一个类,来让用户自己编写代码)。
这是时候,矛盾的点就出现了。创建一个.aspx页面,如果附带生成2个不同名的类,来表示。显然有点怪怪的。最好的解决方法,就是把这两个类,合并成一个类。所以就有了partial,最终会将运用这个关键字的类,编译时都会合并成一个类。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询