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么
展开
 我来答
handangaoyang
2014-03-31 · TA获得超过2242个赞
知道大有可为答主
回答量:2633
采纳率:88%
帮助的人:913万
展开全部
命名空间:可以理解成文件夹

类:可以理解成文件

类1,类2都属于同一个namespace是可以的。也就是两个文件可以存在于同一个文件夹里面。

但是同一个文件夹里面不可以存在同名的文件。所以class Y,是不可以的。
追问
我尝试了一下,class Y也是可以的,但是class前用了一个partial ,不知道是不是这个原因,求大神解释
追答
很惭愧,我不是大神啊。

是的,就是它的缘故。

partial的意思是部分类。也就是说,会把运用了这个关键字的所有类的,最终编译成一个文件。所以如果你不运用代表部分类的关键字,也就是每个类是一个独立的类,那么一个命名空间下只能有一个类。

如果你对多个类运用了partial关键字,最终生成的代码,其实还是一个类。其实,还是没有违背一个命名空间下只能有一个类。

partial关键字的用途。
partial关键字,一开始出现主要是为了解决asp.net中.aspx页面的问题。
我们都知道.aspx页面可以拖放控件,可以调整控件的样式,可以编写事件。
C#中一切操作即对象,所以每一个.aspx页面一定要有一个类,来表示该页面中的所有控件,并且设置所有控件的样式(这里是生成的第一个类,来描述控件信息)。
.aspx页面还可以让用户自己编写代码(这里也要生成一个类,来让用户自己编写代码)。
这是时候,矛盾的点就出现了。创建一个.aspx页面,如果附带生成2个不同名的类,来表示。显然有点怪怪的。最好的解决方法,就是把这两个类,合并成一个类。所以就有了partial,最终会将运用这个关键字的类,编译时都会合并成一个类。
阳光的雷咩咩
2014-03-31 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7778万
展开全部
  1. C#的命名空间的组织与文件的物理位置没有关系,这与java有很大不同,用起来也感觉方便很多,VS在文件夹里添加新文件的时候会自动加上文件夹名作底层命名空间,但是可以手工改。

  2. partial class主要是便于区分ide的自动代码与程序员的代码,一个类的多个部分分布于不同的文件,命名空间自然应该一样。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式