CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

命名空间的疑惑?

楼主4water(4点水)2003-11-01 11:36:27 在 .NET技术 / ASP.NET 提问

到底命名空间是什么东西?它与DELPHI中的   Unit是不是同一回事情?请高手指点。谢谢   ! 问题点数:30、回复次数:6Top

1 楼osborne(做人要本份!)回复于 2003-11-01 11:42:52 得分 10

命名空间逻辑上有些和目录相似,  
  你在CS中using   namespacing,    
  你就可以引用所有该空间下的类了,  
  而这些dll放在哪个目录下都没有关系,只要包含在项目中.Top

2 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2003-11-01 11:48:15 得分 10

(摘自.net文档)  
   
  命名空间组织在程序集中定义的对象。程序集可以包含多个命名空间,而命名空间可以包含其他命名空间。命名空间避免了使用大的对象组(如类库)时的多义性并简化了引用。    
   
  例如,Visual   Studio   .NET   在   System.Windows.Forms   命名空间中定义   ListBox   类。以下代码片段说明如何使用该类的完全限定名声明变量:  
   
  Dim   LBox   As   System.Windows.Forms.ListBox  
  Visual   Studio.NET   命名空间解决了有时被称为“命名空间污染”的问题,即在另一个库中使用类似名称妨碍了类库的开发者。这些同现有组件的冲突有时被称为“名称冲突”。  
   
  例如,如果创建一个名为   ListBox   的新类,则在项目内部不需任何限定即可使用它。但是,如果不想在同一项目中使用   Visual   Studio   .NET   ListBox   类,就必须使用完全限定的引用以使引用唯一。如果该引用不唯一,Visual   Basic   .NET   会产生错误,指出该名称不明确。下面的代码片断说明如何声明这些对象:  
   
  '       Define   a   new   object   based   on   your   ListBox   class.  
  Dim   LBC   as   New   ListBox    
  '       Define   a   new   Windows.Forms   ListBox   control.  
  Dim   MyLB   as   New   System.Windows.Forms.ListBox    
  下图说明了两个命名空间层次结构,它们都包含名为   ListBox   的对象。  
   
  默认情况下,用   Visual   Basic   .NET   创建的可执行文件会包含与项目同名的命名空间。例如,如果在名为   ListBoxProject   的项目内定义一个对象,则可执行文件   (ListBoxProject.exe)   包含称为   ListBoxProject   的命名空间。  
   
  多个程序集可使用同一命名空间。Visual   Basic   .NET   将它们视为一个名称集。例如,可以在名为   Assemb1   的程序集中为名为   SomeNameSpace   的命名空间定义类,在名为   Assemb2   的程序集中为同一命名空间定义附加的类。  
   
  完全限定名  
  完全限定名是以定义对象的命名空间的名称为前缀的对象引用。如果创建对该类的引用(选择“项目”菜单中的“添加引用”),然后在代码中使用对象的完全限定名,就可以使用在其他项目中定义的对象。下面的代码片段说明如何使用另一项目命名空间中的对象的完全限定名:  
   
  Dim   LBC   As   New   ListBoxProject.Form1.ListBox()  
  因为编译器总能确定正在使用哪一个对象,完全限定名避免了名称冲突。然而,名称本身可能变得冗长繁琐。为避免这点,可以使用   Imports   语句来定义“别名”——可用来替代完全限定名的缩写名称。例如,下面的代码片断为两个完全限定名创建别名,并且使用这些别名定义两个对象:  
   
  Imports   LBControl   =   System.Windows.Forms.ListBox  
   
  Imports   MyListBox   =   ListBoxProject.Form1.ListBox  
   
  Dim   LBC   As   LBControl  
   
  Dim   MyLB   As   MyListBox  
   
  如果使用   Imports   语句而不用别名,可以不加限定地使用该命名空间中的所有名称,只要它们对项目而言是唯一的即可。如果项目包含的命名空间的   Imports   语句含有同名项,则使用该名称时必须完全限定它。例如,假设项目包含如下两个   Imports   语句:  
   
  Imports   MyProj1   '   This   namespace   contains   a   class   called   Class1.  
  Imports   MyProj2   '   This   namespace   also   contains   a   class   called   Class1.  
  如果试图在没有完全限定的情况下使用   Class1,Visual   Basic   .NET   将产生错误,指出名称   Class1   不明确。  
   
  命名空间级语句  
  在命名空间内,可以定义像模块、接口、类、委托、枚举、结构以及其他命名空间这样的项。不能定义像属性、过程、命名空间级的变量和事件这样的项,这些项必须在像模块、结构或类这样的容器内声明。  
  Top

3 楼4water(4点水)回复于 2003-11-01 11:52:15 得分 0

to   osborne(Asp.net&Java)   (   ):   你的意思是说   命名空间   都是一些DLL?    
  另外,有空的话   帮我看看   这个帖子:  
  http://expert.csdn.net/Expert/topic/2416/2416872.xml?temp=.7217218  
  谢谢   我刚学.Net   望高手   多多指教。Top

4 楼osborne(做人要本份!)回复于 2003-11-01 12:21:56 得分 5

命名空间不是DLL, .net会将你写的控件类编译成dllTop

5 楼Abac(~~)回复于 2003-11-02 00:46:42 得分 5

命名空间是一个逻辑范围,说明这些类属于哪个范围。  
   
  比如:湖北省有个名叫A的城市,湖南省也有个名叫A的城市,就可以用hubei.A和hunan.A以示区别,这里hubei和hunan就是命名空间。Top

6 楼zsww()回复于 2003-11-02 16:03:34 得分 0

学习!!  
   
  -------努力学习   不断实践   虚心讨教--------  
  Top

相关问题

  • 命名空间
  • 命名空间
  • 命名空间的问题
  • 命名空间的含义
  • http命名空间问题
  • 命名空间问题
  • 命名空间的问题
  • 命名空间问题
  • DataSet的命名空间???
  • 命名空间小问题

关键词

  • .net
  • 命名
  • 语句
  • 项目
  • 代码
  • 结构
  • visual
  • 命名空间
  • 定义
  • listboxproject

得分解答快速导航

  • 帖主:4water
  • osborne
  • webdiyer
  • osborne
  • Abac

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo