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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mdl 中级黑马   /  2013-4-11 17:27  /  1459 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问命名空间里面除了继续嵌套命名空间外,是不是就剩接口,类(包括抽象类),结构体,枚举,委托,了

评分

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

查看全部评分

2 个回复

倒序浏览
一般的时候不建议命名空间的嵌套,另写一个文件,新建一个命名空间,然后引用命名空间就可以了。这里给解释一下命名空间的意义吧,为了最大限度地避免类名冲突,C#使用命名空间来组织类,在同一个命名空间内,类名不能重名,但是在不同的命名空间中,可以是用相同的类名,这里写一个例子给你吧,希望你能弄清楚
  1. namespace N1.N2
  2. {
  3.      class A{}
  4.      class B{}
  5. }
复制代码
等效于
  1. namespace N1
  2. {
  3.       namespace N2
  4.       {
  5.         class A{}
  6.        classs B{}
  7.          }
  8. }
复制代码
命名空间是可以扩充的,两个具有相同的完全限定名的命名空间实际上是同一个命名空间,也可以使用using在一个命名空间内引用另外一个命名空间内的变量或方法

评分

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

查看全部评分

回复 使用道具 举报
关于命名空间还需要注意到:
.NET命名空间是嵌套命名空间,有些类就在system命名空间下,但是system命名空间不仅可以定义类 还可以定义子命名空间比如system.date,就是说现在 system命名空间下的某些类与system.date命名空间是同一级别的。.NET不会递归查找所有命名空间,因为太费时间,所以它要求你写的详细一点儿以便查找。如果.NET使用递归查找命名空间,那还用什么using语句,就一个using System得了。
所以,using System和system.date的关系是system是爸爸
system.data是儿子.
他们下面的类库是自己口袋的财产,但他们分家了..
各归各的,关系就只有父子名分了
虽然.NET命名空间是嵌套命名空间,但在编程时,如楼上所说,不提倡命名空间的嵌套,这主要从程序的可读性和可维护性来考量的。

评分

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

查看全部评分

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