黑马程序员技术交流社区

标题: 命名空间里面的问题 [打印本页]

作者: mdl    时间: 2013-4-11 17:27
标题: 命名空间里面的问题
请问命名空间里面除了继续嵌套命名空间外,是不是就剩接口,类(包括抽象类),结构体,枚举,委托,了
作者: 贡宗新    时间: 2013-4-11 17:50
一般的时候不建议命名空间的嵌套,另写一个文件,新建一个命名空间,然后引用命名空间就可以了。这里给解释一下命名空间的意义吧,为了最大限度地避免类名冲突,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在一个命名空间内引用另外一个命名空间内的变量或方法
作者: 韦俊琳    时间: 2013-4-11 19:32
关于命名空间还需要注意到:
.NET命名空间是嵌套命名空间,有些类就在system命名空间下,但是system命名空间不仅可以定义类 还可以定义子命名空间比如system.date,就是说现在 system命名空间下的某些类与system.date命名空间是同一级别的。.NET不会递归查找所有命名空间,因为太费时间,所以它要求你写的详细一点儿以便查找。如果.NET使用递归查找命名空间,那还用什么using语句,就一个using System得了。
所以,using System和system.date的关系是system是爸爸
system.data是儿子.
他们下面的类库是自己口袋的财产,但他们分家了..
各归各的,关系就只有父子名分了
虽然.NET命名空间是嵌套命名空间,但在编程时,如楼上所说,不提倡命名空间的嵌套,这主要从程序的可读性和可维护性来考量的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2