A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王洪磊 中级黑马   /  2013-6-3 12:43  /  1732 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王洪磊 于 2013-6-4 19:13 编辑

在一个解决方案,里面有两个命名空间,怎样才能在一个命名空间里面调用另一个命名空间里面的窗体?一个命名空间下,还能在定义一个或多个命名空间么?

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

8 个回复

倒序浏览
在解决方案资源管理器中:右击当前项目——添加引用——在项目栏中选择你要引用的项目  并确定——然后回到你要进行命名空间引用的类中  using 一下那个命名空间,就可以了,如果还不知道的话,QQ联系我,我截了图,但是不知道怎么用帖子回复你

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
我们知道在一个文件夹下面是不能定义两个相同名字的文件那么在C#中也是一样的,引入命名空间的主要作用就是解决文件重名的问题。我们可以利用using 关键字加上命名空间的名字来引用在一个命名空间里已经定义好的方法。列如:我们想要在命名空间A中引用命名空间B中的method方法。
第一种方法。直接在命名空间A所在的文件的开始加上 using A这样在整个文件中均可以引用命名空间B中method方法。就好比我们在建立一个控制台应用程序时系统会自动用using关键字加入一些命名空间。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using B;//那么在整个范围内就可以引用B中的方法了

第二种方法就是在文件开始处 不利用using关键字加入命名空间 ,而是在具体要用某个方法时支出方法的“全路径”,即命名空间加上方法名。具体如下:B.method;这样也可以引用B命名空间中的method方法。

但是当我们在一个命名空间要频繁引用另一个命名空间的其他方法时用第一种方法非常的方便会给我们减少很多的的麻烦。

命名空间是允许嵌套的也就是在一个命名空间中可以再定义另一个命名空间。using System.Collections.Generic;这就是在System命名空间中嵌套定义了Collection命名空间,在Collection命名空间中定义了Generic命名空间。命名空间的嵌套定义只是逻辑上的,如果真是在一个命名空间下嵌套定义另一个命名空间会导致一个非常臃肿的命名空间。

以上是我对命名空间的理解,如有不妥之处请大家指出,大家取长补短相互学习,共同进步,向着黑马的大门一步步迈进!谢谢!

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
1.用于解决类重名问题,可以看做“类的文件夹”。

2.如果代码和被使用的类在一个namespace则不需要using。

3.在不同命名空间下的类调用有两种方法:

       方法一:写全称  命名空间.类名

                例:system.Console.ReadKey();

       方法二:先using引用命名空间,再调用

             例:using system.Text
         

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
李云飞 发表于 2013-6-3 13:17
我们知道在一个文件夹下面是不能定义两个相同名字的文件那么在C#中也是一样的,引入命名空间的主要作用就是 ...

那一个命名空间下,还能在定义一个或多个命名空间么?
回复 使用道具 举报
可以啊  只是最好不要直接在已有命名空间下自己定义命名空间,这样一个命名空间就会显得非常的臃肿。系统里的嵌套命名的定义都是逻辑上的嵌套。
回复 使用道具 举报
这个就像楼上的回复的那样,添加引用或者在代码顶端的using下添加using语句
回复 使用道具 举报
王洪磊 发表于 2013-6-4 08:42
那一个命名空间下,还能在定义一个或多个命名空间么?

一个命名空间下,还能在定义一个或多个命名空间么?
可以。
直接在命名空间下添加引用或者使用using语句就行,楼上说的都很对。
回复 使用道具 举报
直接在命名空间下添加引用或者使用using语句就可以的啊

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马