标题:C#中的 命名空间, 类名, 文件名 都是啥关系?
只看楼主
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
结帖率:91.67%
已结贴  问题点数:20 回复次数:25 
C#中的 命名空间, 类名, 文件名 都是啥关系?

求教:C#中的命名空间,类名,文件名都是啥关系?

为什么新建一个类,默认的命名空间就是那个项目文件夹的名称;类名就是那个cs文件的名称,可以修改吗修改后会怎么样?

拜谢 老师大侠 先!!!
搜索更多相关主题的帖子: 空间 新建 
2013-03-21 13:10
qq645485165
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:76
专家分:197
注 册:2013-3-16
得分:1 
举个例子,类就像“人类”一样,类下有方法,属性,字段,定义一个类就像假定一个人,方法就是这个人做某件事所要的方法,属性就是这个人所特有的性格,面貌等,字段可以封装成属性。cs是类空间名,cs文件名称就是类名称,可以修改,修改之后类名即class+类名也随之修改
2013-03-21 13:57
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
得分:0 
以下是引用qq645485165在2013-3-21 13:57:04的发言:

举个例子,类就像“人类”一样,类下有方法,属性,字段,定义一个类就像假定一个人,方法就是这个人做某件事所要的方法,属性就是这个人所特有的性格,面貌等,字段可以封装成属性。cs是类空间名,cs文件名称就是类名称,可以修改,修改之后类名即class+类名也随之修改

感谢 qq645485165 的回复!!!

我这里的 “文件名”指 “解决方案”的名称(或 “解决方案文件名”),所以我的 问题是:

"命名空间"、 "类名"、 "解决方案文件名" 是啥关系?

关于“类”及类成员,我基本理解了。

谢谢 帮教老师
2013-03-21 14:33
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:3 
解决方案相当于一个项目,一个项目只有一个解决方案,对于Visual Studio来说,会建一个文件夹来保存这个解决方案,也会有一个同名文件用于加载这个解决方案
命名空间相当于一个项目中的模块,一个项目是有多个模块的,比如一个餐饮管理系统,会有菜单模块,点菜模块,服务员厨师这些的人员管理模块,收费模块,预订模块等等,当然你也可以全部放在一个模块里面,但这样做并不是一个好的主意,Visual Studio会在项目文件夹内,为每个模块,也就是命名空间,都创建文件夹.创建解决方案(项目)的时候,会默认创建一个模块,当然是同名的,因为Visual Studio也不知道你要什么名,这个命名空间名称是可以更改的,但请不要手工去改文件夹的名称,因为Visual Studio要加载这些东西,会创建配置文件关联这些文件夹以及文件,所以修改都请在项目的解决方案下边去修改,Visual Studio会自动更改关联的.
类是存在于模块里面的,也就是命名空间里面,Visual Studio会为类在命名空间的文件夹里面创建类文件,加载的时候,这个类才会加载到这个命名空间下面,同样不要手工修改文件名,还是在命名空间下面右键点这个类,然后修改.
2013-03-21 15:33
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
得分:0 
以下是引用yhlvht在2013-3-21 15:33:59的发言:

解决方案相当于一个项目,一个项目只有一个解决方案,对于Visual Studio来说,会建一个文件夹来保存这个解决方案,也会有一个同名文件用于加载这个解决方案
命名空间相当于一个项目中的模块,一个项目是有多个模块的,比如一个餐饮管理系统,会有菜单模块,点菜模块,服务员厨师这些的人员管理模块,收费模块,预订模块等等,当然你也可以全部放在一个模块里面,但这样做并不是一个好的主意,Visual Studio会在项目文件夹内,为每个模块,也就是命名空间,都创建文件夹.创建解决方案(项目)的时候,会默认创建一个模块,当然是同名的,因为Visual Studio也不知道你要什么名,这个命名空间名称是可以更改的,但请不要手工去改文件夹的名称,因为Visual Studio要加载这些东西,会创建配置文件关联这些文件夹以及文件,所以修改都请在项目的解决方案下边去修改,Visual Studio会自动更改关联的.
类是存在于模块里面的,也就是命名空间里面,Visual Studio会为类在命名空间的文件夹里面创建类文件,加载的时候,这个类才会加载到这个命名空间下面,同样不要手工修改文件名,还是在命名空间下面右键点这个类,然后修改.

非常感谢 yhlvht 老师 清晰 的 讲解指导!!!

再请教 yhlvht 老师:


1. 如何 查找到 Visual Studio 为 命名空间 (项目中的模块)创建的 “文件夹”?


好像添加的项目 - 类库,形成的是.cs类文件,而该类文件的 命名空间 没能找到,比如添加一个Person类文件,下面设三个命名空间:EuropePeople, AsiaPeople, AficaPeople, 这三个文件夹如何查找?


2. 一个.cs 文件 中 可以有 多个 命名空间吗?



无法上传图片,所以只能这样文字描述问题。
羡慕能上传图片的网友

再次感谢yhlvht 老师!!!

[ 本帖最后由 learnerok 于 2013-3-21 16:43 编辑 ]
2013-03-21 16:21
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:2 
添加命名空间,需要鼠标右键点击解决方案创建(添加新项目),通常是创建类库,创建的时候可以更改路径,默认就在该解决方案的文件夹内
右键点击创建的类库,也就是命名空间,选择添加->新建项,通常是创建类或是windows窗体,可以添加cs文件,路径默认在命名空间的文件夹内,路径不可修改
一个cs文件中,只能有一个命名空间
2013-03-21 17:01
好聚好散
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:138
专家分:123
注 册:2012-12-4
得分:0 
vv

无节操,无真相
2013-03-21 17:21
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
得分:0 
以下是引用yhlvht在2013-3-21 17:01:29的发言:

添加命名空间,需要鼠标右键点击解决方案创建(添加新项目),通常是创建类库,创建的时候可以更改路径,默认就在该解决方案的文件夹内
右键点击创建的类库,也就是命名空间,选择添加->新建项,通常是创建类或是windows窗体,可以添加cs文件,路径默认在命名空间的文件夹内,路径不可修改
一个cs文件中,只能有一个命名空间

感谢 yhlvht 老师指导!!!

再请教您:

- 添加项目 生成 ".cs 文件",也就是添加了 “命名空间”?

- ".cs 文件"名称 在添加时 起名为 Person.cs, 编程时,将 “命名空间”名称改为:AsiaPeople,则该“.cs文件”应为“Person.cs”,对吗?

- 如果在Main()方法中调用“AsiaPeople命名空间”的 Work()方法,则如何引用?(偶也可以自己试一下,但还是想让老师讲解一下,惭愧!)
  如何 在 解决方案中(软件包)中 查找 命名空间为 “AsiaPeople”的文件夹,或者说VS中会为“AsiaPeople”命名空间自动生成一个文件夹吗?

感激yhlvht 老师指导!
2013-03-21 17:59
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:4 
在解决方案下面添加一个项目,就是添加了一个命名空间,命名空间会自动生成一个文件夹.并且在这个文件夹下面创建项目文件,后缀是csproj,并且创建命名空间的时候,默认创建一个类文件,如果添加的是类库,就默认创建一个Class1.cs的类文件.
类文件创建以后,虽然可以在编程时手工更改类的命名空间,就是改变类上面的namespace后面的东西,但不建议这么做,而且这么做也没有意义.不管你是否改变是命名空间,cs文件的名称,也就是类名没有改变.
在Main()方法所在的命名空间中,要调用其它命名空间的类,也就是存在多个命名空间的时候,你需要在Main()方法所在的命名空间下面,你会看到"引用"这两个字,他前面还有个+号可以点开,这表示这个模块,引用别的模块的东西,你右键点击"引用"这两个字,选择添加引用,在弹出的窗体中选择"项目"标签,就可以看到当前解决方案下面的所有模块,选择好以后确定,这样Main()方法所在的模块就引用了其它模块了.
在Main()方法所在的类中,需要using 命名空间,当然你可以在代码中先敲上你要使用的其它模块的类名,鼠标移上去以后,会有箭头提示,点击后自动添加using,这样就可以用了
你要在解决方案中,查找命名空间的文件夹,右键点击命名空间,选择倒数第二项,在windows资源管理器中打开文件夹就可以找到这个命名空间的文件夹了

[ 本帖最后由 yhlvht 于 2013-3-21 18:48 编辑 ]
2013-03-21 18:47
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
得分:0 
感激yhlvht 老师指导!!!!

“你要在解决方案中,查找命名空间的文件夹,右键点击命名空间,选择倒数第二项,在windows资源管理器中打开文件夹就可以找到这个命名空间的文件夹了”


请教yhlvht 老师:

“右键点击命名空间”--- 是在 编代码 上的 “命名空间”名称上(绿色字)上 “右键点击命名空间”吗?,其倒数第二项是“粘贴”。

谢谢yhlvht 老师!
2013-03-21 19:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-401459-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.189129 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved